From 5dab2ae7fc4ae0c17b2963428d1a09db94470128 Mon Sep 17 00:00:00 2001 From: Arvind Tatiparti Date: Thu, 4 Jul 2019 20:32:54 +0530 Subject: [PATCH 01/12] add timestamps of commands --- data/log.json | 0 services/openfalcon.py | 12 ++++++++++++ 2 files changed, 12 insertions(+) create mode 100644 data/log.json diff --git a/data/log.json b/data/log.json new file mode 100644 index 0000000..e69de29 diff --git a/services/openfalcon.py b/services/openfalcon.py index 35f6c0f..c9ed21e 100755 --- a/services/openfalcon.py +++ b/services/openfalcon.py @@ -11,12 +11,17 @@ import argparse as arg import sys +import time from . import search from . import recommendations from . import code from . import stats from . import index +def writeToJSONFile(path, fileName, data): + target = './' + path + '/' + fileName + '.json' + with open(target, 'w') as fp: + json.dump(data, fp) def init_search_module_args(parser): parser.add_argument( @@ -69,6 +74,13 @@ def main(): init_index_module_args(parser) args = parser.parse_args() + t = time.time() + path = './data' + fileName = 'log' + jsonData = {} + jsonData[time] = parser + writeToJSONFile(path, fileName, jsonData) + if len(sys.argv) == 1: print("Please refer to help section using openfalcon --help / openfalcon -h") sys.exit() From 2eed33b666f44fa1c456827624aa0ca1a80c67e5 Mon Sep 17 00:00:00 2001 From: Arvind Tatiparti Date: Thu, 4 Jul 2019 20:35:51 +0530 Subject: [PATCH 02/12] update to append --- services/openfalcon.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/services/openfalcon.py b/services/openfalcon.py index c9ed21e..d8be47e 100755 --- a/services/openfalcon.py +++ b/services/openfalcon.py @@ -11,6 +11,7 @@ import argparse as arg import sys +import json import time from . import search from . import recommendations @@ -20,7 +21,7 @@ def writeToJSONFile(path, fileName, data): target = './' + path + '/' + fileName + '.json' - with open(target, 'w') as fp: + with open(target, 'a+') as fp: json.dump(data, fp) def init_search_module_args(parser): @@ -74,11 +75,13 @@ def main(): init_index_module_args(parser) args = parser.parse_args() + argparse_dict = vars(args) t = time.time() path = './data' fileName = 'log' jsonData = {} - jsonData[time] = parser + jsonData['Time'] = t + jsonData['Command'] = argparse_dict writeToJSONFile(path, fileName, jsonData) if len(sys.argv) == 1: From b8c9d76f0afa90a6fcbce5c6b6165b7804b8b737 Mon Sep 17 00:00:00 2001 From: Arvind Tatiparti Date: Thu, 4 Jul 2019 20:45:06 +0530 Subject: [PATCH 03/12] update package with modified scripts --- build/lib/README.md | 24 +++++++++------------- build/lib/openfalcon.egg-info/PKG-INFO | 6 ++++-- build/lib/openfalcon.egg-info/SOURCES.txt | 1 + build/lib/services/openfalcon.py | 15 ++++++++++++++ dist/openfalcon-0.0.1-py3-none-any.whl | Bin 86295 -> 86936 bytes dist/openfalcon-0.0.1.tar.gz | Bin 77756 -> 78320 bytes openfalcon.egg-info/PKG-INFO | 6 ++++-- openfalcon.egg-info/SOURCES.txt | 1 + 8 files changed, 35 insertions(+), 18 deletions(-) diff --git a/build/lib/README.md b/build/lib/README.md index 966eb19..121673f 100755 --- a/build/lib/README.md +++ b/build/lib/README.md @@ -5,25 +5,16 @@ Falcon is a library which allows you to use the [Cosmos](https://github.com/Open This repository is based out in python scripts and is currently ported to python 3.x, Now lets begin with the features. ## Installation -Install pipenv and add it to path: +Install openfalcon from PyPI using the command: ```bash -pip3 install --user pipenv -``` - -then install the dependencies from the root of project: -```bash -pipenv shell -pipenv install +pip3 install openfalcon --user ``` ## Usage ### openfalcon -You can make use of the openfalcon interface for easily using all the services available in the repo. Start by installing it from root of project. -```bash -pip3 install --user -e . -``` -now for usage just look up the help or refer the below sections to understand what each of the service can offer. +You can make use of the openfalcon interface for easily using all the services available in the repo. Start by launching a terminal window. +Now, for usage just look up the help or refer the below sections to understand what each of the service can offer. ##### Clone the Repository To start first we need to clone the cosmos repository using the ```index.py``` file by writing ```openfalcon --clone``` command. @@ -75,4 +66,9 @@ openfalcon --stats -f txt > ./STATS.txt openfalcon --stats -f md > ./STATS.md ``` -This library is under development, please feel free to report any issues or request a features. +## For Contributors + +You can find all of the code [here](https://github.com/OpenGenus/falcon). +The code is present in the build/lib directory. After making any changes, run all the commands starting with the command ```pip3 install --user pipenv``` to test locally. + +Please feel free to report any issues or request new features. diff --git a/build/lib/openfalcon.egg-info/PKG-INFO b/build/lib/openfalcon.egg-info/PKG-INFO index 7616a83..f9289af 100644 --- a/build/lib/openfalcon.egg-info/PKG-INFO +++ b/build/lib/openfalcon.egg-info/PKG-INFO @@ -1,8 +1,10 @@ Metadata-Version: 1.2 Name: openfalcon Version: 0.0.1 -Summary: UNKNOWN -Home-page: UNKNOWN +Summary: Falcon is a library which allows you to use the Cosmos library in a convenient way. +Home-page: https://github.com/OpenGenus/falcon +Author: Opengenus Foundation +Author-email: team@opengenus.org License: UNKNOWN Description: UNKNOWN Platform: UNKNOWN diff --git a/build/lib/openfalcon.egg-info/SOURCES.txt b/build/lib/openfalcon.egg-info/SOURCES.txt index 4d6d14c..104dc1a 100644 --- a/build/lib/openfalcon.egg-info/SOURCES.txt +++ b/build/lib/openfalcon.egg-info/SOURCES.txt @@ -2,6 +2,7 @@ MANIFEST.in Pipfile Pipfile.lock README.md +setup.cfg setup.py data/stats.md data/stats.txt diff --git a/build/lib/services/openfalcon.py b/build/lib/services/openfalcon.py index 35f6c0f..d8be47e 100755 --- a/build/lib/services/openfalcon.py +++ b/build/lib/services/openfalcon.py @@ -11,12 +11,18 @@ import argparse as arg import sys +import json +import time from . import search from . import recommendations from . import code from . import stats from . import index +def writeToJSONFile(path, fileName, data): + target = './' + path + '/' + fileName + '.json' + with open(target, 'a+') as fp: + json.dump(data, fp) def init_search_module_args(parser): parser.add_argument( @@ -69,6 +75,15 @@ def main(): init_index_module_args(parser) args = parser.parse_args() + argparse_dict = vars(args) + t = time.time() + path = './data' + fileName = 'log' + jsonData = {} + jsonData['Time'] = t + jsonData['Command'] = argparse_dict + writeToJSONFile(path, fileName, jsonData) + if len(sys.argv) == 1: print("Please refer to help section using openfalcon --help / openfalcon -h") sys.exit() diff --git a/dist/openfalcon-0.0.1-py3-none-any.whl b/dist/openfalcon-0.0.1-py3-none-any.whl index 400d7c625db4fc1fc6829ee51a2835a2cc75c23c..327f815504dd2a95b6d3c798f17bf113a89174ea 100644 GIT binary patch delta 6159 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 Y{_kZ0x&RIi?cJuD&>;{NW#A6-fAl=G)&Kwi diff --git a/dist/openfalcon-0.0.1.tar.gz b/dist/openfalcon-0.0.1.tar.gz index 37e8cd46a68e3b34a15e72fd2a53da52dd24d07f..ba83b042b45363eef01b224190a8650481dbe55c 100644 GIT binary patch delta 75225 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%0AHz>86SwBhYE5GRdRJmvr&IP-J%0i#7 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

H+*o1}K8$1<6z+Up9jGtv^(QnQF0@WT{Oj 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≪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%0DR$6-M%UJu_4;+&CsGGRyW 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 Nd;!@T17ZLu831F~==A^q diff --git a/openfalcon.egg-info/PKG-INFO b/openfalcon.egg-info/PKG-INFO deleted file mode 100644 index f9289af..0000000 --- a/openfalcon.egg-info/PKG-INFO +++ /dev/null @@ -1,11 +0,0 @@ -Metadata-Version: 1.2 -Name: openfalcon -Version: 0.0.1 -Summary: Falcon is a library which allows you to use the Cosmos library in a convenient way. -Home-page: https://github.com/OpenGenus/falcon -Author: Opengenus Foundation -Author-email: team@opengenus.org -License: UNKNOWN -Description: UNKNOWN -Platform: UNKNOWN -Requires-Python: >3.5.2 diff --git a/openfalcon.egg-info/SOURCES.txt b/openfalcon.egg-info/SOURCES.txt deleted file mode 100644 index 104dc1a..0000000 --- a/openfalcon.egg-info/SOURCES.txt +++ /dev/null @@ -1,28 +0,0 @@ -MANIFEST.in -Pipfile -Pipfile.lock -README.md -setup.cfg -setup.py -data/stats.md -data/stats.txt -dumps/catMap.p -dumps/category.json -dumps/trie.p -openfalcon.egg-info/PKG-INFO -openfalcon.egg-info/SOURCES.txt -openfalcon.egg-info/dependency_links.txt -openfalcon.egg-info/entry_points.txt -openfalcon.egg-info/requires.txt -openfalcon.egg-info/top_level.txt -services/__init__.py -services/category.py -services/code.py -services/getSearchResults.py -services/index.py -services/openfalcon.py -services/recommendationUtils.py -services/recommendations.py -services/search.py -services/stats.py -services/trie.py \ No newline at end of file diff --git a/openfalcon.egg-info/dependency_links.txt b/openfalcon.egg-info/dependency_links.txt deleted file mode 100644 index 8b13789..0000000 --- a/openfalcon.egg-info/dependency_links.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/openfalcon.egg-info/entry_points.txt b/openfalcon.egg-info/entry_points.txt deleted file mode 100644 index 027b0db..0000000 --- a/openfalcon.egg-info/entry_points.txt +++ /dev/null @@ -1,3 +0,0 @@ -[console_scripts] -openfalcon = services.openfalcon:main - diff --git a/openfalcon.egg-info/requires.txt b/openfalcon.egg-info/requires.txt deleted file mode 100644 index 508ae09..0000000 --- a/openfalcon.egg-info/requires.txt +++ /dev/null @@ -1,3 +0,0 @@ -argparse -gitpython -pygtrie diff --git a/openfalcon.egg-info/top_level.txt b/openfalcon.egg-info/top_level.txt deleted file mode 100644 index 8b13789..0000000 --- a/openfalcon.egg-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ - From 1a73d5ce6d234eb1a2b6b0ab782727c7cf6f337f Mon Sep 17 00:00:00 2001 From: Arvind Tatiparti Date: Mon, 8 Jul 2019 18:20:37 +0530 Subject: [PATCH 08/12] updated from upstream --- README.md | 2 +- services/getSearchResults.py | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 121673f..170fc70 100755 --- a/README.md +++ b/README.md @@ -69,6 +69,6 @@ openfalcon --stats -f md > ./STATS.md ## For Contributors You can find all of the code [here](https://github.com/OpenGenus/falcon). -The code is present in the build/lib directory. After making any changes, run all the commands starting with the command ```pip3 install --user pipenv``` to test locally. +All features code is present in the services directory. After making any changes, run all the commands starting with the command ```pip3 install --user pipenv``` to test locally. Please feel free to report any issues or request new features. diff --git a/services/getSearchResults.py b/services/getSearchResults.py index 828fd1e..ea31f8e 100755 --- a/services/getSearchResults.py +++ b/services/getSearchResults.py @@ -4,21 +4,31 @@ import sys import argparse import pathlib +import time ROOT_PATH = pathlib.Path(__file__).parents[1].as_posix() trie = pickle.load(open( ROOT_PATH + "/dumps/trie.p", "rb")) catMap = pickle.load(open(ROOT_PATH + "/dumps/catMap.p", "rb")) category = json.load(open(ROOT_PATH + "/dumps/category.json", "r")) +def writeToJSONFile(path, fileName, data): + filePathNameWithExt = './' + path + '/' + fileName + '.json' + with open(filePathNameWithExt, 'w') as fp: + json.dump(data, fp) def getSearchResults(searchTerm, display=None): """ part of search.py script, which implements functionality similar to grep -ir """ + start = time.time() + path = './services' + fileName = 'search_output' searchTerms = searchTerm.split() results = [] newResults = [] + jsonData = {} + jsonData['searchTearm'] = searchTerm for terms in searchTerms: terms = terms.lower() if trie.get(terms): @@ -33,12 +43,17 @@ def getSearchResults(searchTerm, display=None): idx = 1 if display: for data in searchResults: - # print category[data]['description'] + #print (category[data]['description']) newResults.append(category[data]['description']) results.append(category[data]) idx = idx+1 if idx>int(display): print ("\n".join(newResults)) + jsonData['numResults'] = display + jsonData['results'] = newResults + end = time.time() + jsonData['timeTaken'] = end - start + writeToJSONFile(path, fileName, jsonData) return results results = [] From 0dbaa5d1e749a6d8113fb1325e61f7e4fe1e4179 Mon Sep 17 00:00:00 2001 From: Arvind Tatiparti Date: Mon, 8 Jul 2019 18:24:01 +0530 Subject: [PATCH 09/12] fixed merge conflict --- build/lib/services/getSearchResults.py | 68 -------------------------- 1 file changed, 68 deletions(-) delete mode 100755 build/lib/services/getSearchResults.py diff --git a/build/lib/services/getSearchResults.py b/build/lib/services/getSearchResults.py deleted file mode 100755 index ea31f8e..0000000 --- a/build/lib/services/getSearchResults.py +++ /dev/null @@ -1,68 +0,0 @@ -import pickle -import collections -import json -import sys -import argparse -import pathlib -import time - -ROOT_PATH = pathlib.Path(__file__).parents[1].as_posix() -trie = pickle.load(open( ROOT_PATH + "/dumps/trie.p", "rb")) -catMap = pickle.load(open(ROOT_PATH + "/dumps/catMap.p", "rb")) -category = json.load(open(ROOT_PATH + "/dumps/category.json", "r")) - -def writeToJSONFile(path, fileName, data): - filePathNameWithExt = './' + path + '/' + fileName + '.json' - with open(filePathNameWithExt, 'w') as fp: - json.dump(data, fp) - -def getSearchResults(searchTerm, display=None): - """ - part of search.py script, which implements - functionality similar to grep -ir - """ - start = time.time() - path = './services' - fileName = 'search_output' - searchTerms = searchTerm.split() - results = [] - newResults = [] - jsonData = {} - jsonData['searchTearm'] = searchTerm - for terms in searchTerms: - terms = terms.lower() - if trie.get(terms): - for value in catMap[terms]: - results.append(value) - - counts = collections.Counter(results) - results = sorted(results, key=lambda x: -counts[x]) - searchResults = [] - [searchResults.append(x) for x in results if x not in searchResults] - - idx = 1 - if display: - for data in searchResults: - #print (category[data]['description']) - newResults.append(category[data]['description']) - results.append(category[data]) - idx = idx+1 - if idx>int(display): - print ("\n".join(newResults)) - jsonData['numResults'] = display - jsonData['results'] = newResults - end = time.time() - jsonData['timeTaken'] = end - start - writeToJSONFile(path, fileName, jsonData) - return results - - results = [] - newResults = [] - for data in searchResults: - newResults.append(category[data]['description']) - results.append(category[data]) - print ("\n".join(newResults)) - return results - - # if len(searchResults)==0: - # print "No results found for search" From 7300646ad1f51a8352c961e489418ef17fd7cd53 Mon Sep 17 00:00:00 2001 From: Arvind Tatiparti Date: Tue, 9 Jul 2019 22:53:32 +0530 Subject: [PATCH 10/12] updated target --- services/openfalcon.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/openfalcon.py b/services/openfalcon.py index d8be47e..c88c2c3 100755 --- a/services/openfalcon.py +++ b/services/openfalcon.py @@ -77,7 +77,7 @@ def main(): argparse_dict = vars(args) t = time.time() - path = './data' + path = './falcon/data' fileName = 'log' jsonData = {} jsonData['Time'] = t From 65dabc1b798dcf86ca075555ca5f6221640e6476 Mon Sep 17 00:00:00 2001 From: Arvind Tatiparti Date: Tue, 9 Jul 2019 23:24:10 +0530 Subject: [PATCH 11/12] updated target to current directory --- services/openfalcon.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/openfalcon.py b/services/openfalcon.py index c88c2c3..c085d67 100755 --- a/services/openfalcon.py +++ b/services/openfalcon.py @@ -77,7 +77,7 @@ def main(): argparse_dict = vars(args) t = time.time() - path = './falcon/data' + path = '.' fileName = 'log' jsonData = {} jsonData['Time'] = t From 852774e3628fcc08209f34a69bcae4e0d903d408 Mon Sep 17 00:00:00 2001 From: Arvind Tatiparti Date: Thu, 11 Jul 2019 12:08:32 +0530 Subject: [PATCH 12/12] updated path --- services/openfalcon.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/services/openfalcon.py b/services/openfalcon.py index c085d67..a2ce943 100755 --- a/services/openfalcon.py +++ b/services/openfalcon.py @@ -19,8 +19,8 @@ from . import stats from . import index -def writeToJSONFile(path, fileName, data): - target = './' + path + '/' + fileName + '.json' +def writeToJSONFile(fileName, data): + target = fileName + '.json' with open(target, 'a+') as fp: json.dump(data, fp) @@ -77,12 +77,11 @@ def main(): argparse_dict = vars(args) t = time.time() - path = '.' fileName = 'log' jsonData = {} jsonData['Time'] = t jsonData['Command'] = argparse_dict - writeToJSONFile(path, fileName, jsonData) + writeToJSONFile(fileName, jsonData) if len(sys.argv) == 1: print("Please refer to help section using openfalcon --help / openfalcon -h")

=KS>Cj+n|2?$@4 zXVgI+#Cjy~k%+LT04?BQ{5iUx&9C*a+t}BbZpr|gRo8!ny~e7p2_04{oU`c3gA;Ex z^6VitBHJ^!xZG)E!dPTS8ia4&Ul>_OJ|I7n7{PrKP!nZe#QNStdO`a%qTnD0oU5s7B^VtJnykitDAfd=Tox`Ve<%lMhjsJxAeh~GqC z53zUQcu0RDP)T`93L;VM9)VQ%{Wg-<6-00;djuyCqcxOAO$WQkhk#F?aXLiOAwY)! z9U|!1YpA%aEfO{UheXBTJtUK8M4};@l1`-v&QuMFphJ2vX9$ELAT|W6+Cf`P=8kS^)7#;>(2wdfH3S7QHAzzvN`Wv6wmXFG zJ=3&^c;S*E;cRFRc?1#>NQkD$AwxW?J@kYM>7^wo0$~XDCWS8E>!+wa8d~K z&cTQR=4+%M%D`c+i}FvM3A9UCq1vdy?IwSVeKbhHSGbX&L|QXSP$CU#I^ib%!R><@ z`?3HE{l5Dm+12=A9lKE+c%E{MI&{*a+iF?dK^V1n344i#qxniEu}Oz*A3W#|r+P_b z!261#qS^74q^j={)R?seP=S59w>W>VQwoF(oKcb=t99iisfFPynUshl+Pje|+dhAz z0sGN?Wdtg|O(#lEi|Co(u(wdWM?S|S0@EIW5nOG7Z_Sa>rb2s_1xOFk6K zS2T%CT4dX$ndbSPZj>V^C9|b_gu;Ji^x%-TC=!lzaNcK<4`$)=Q=-%78?plm;b`Ac_S0UTM&szk^+s>%W8nuuu1#`8=~MX zXh(>c5LhUR7rTp~JUaL?;W9QqfnAv1f(ilz2!Jn?5wHY&psYj{<3pQvkc5A?$dnQh zlzbXj+`8APH$Qn%G;bLNcBdLKf6Ow=vqPJ+58GQxPQ<4XtE5<$+w3>+#SCs#oxrwW z9q1t&*5@(`(%;W!hHCNq=B{(K2(8gOR8cXaVKM=2QaH;f2jMC`5w`!;`1>B1ASFp9U37-EQg0-r8igyTCJky>2zKQ&wLf-Ij5G&>R{d5;TJtt#*e; zY4y&Zv`(vsGOHqaC$N9lqo_e$FDa0gf@^F--95;Py-(K;H)-$qM9`Bs(j0#U^R@U7 zq>rx@>nz!p#o8T8u-HX5iYNDxz;p)|q>IkO9B{$fvb2zg7z58^6J!cJlNFx(k20^Gxm z$7<1h`xXR)_GYg9%HzAgi2DDY;=54&1y(dsN5S57@k{c63EhO>rFHgO5+G(D zy1%G`3bCjldqiH*nvTBo_BLB(cor)vsslAZOhJLD6naN69UT#`g?+%N)sYVysgwp0 zH0(`RxrR-sBh?v`&cJ{07l|SgiRfG{l$z;mnl_ccWP>#PWtEGCLW*>x{G>l@sdJHd zrtD7j^mnvOtHOJ((#!HOs+)ve7VE98bd(Sc^+;MwJ214)8oC*#0R9bU;rI&!sH8=; zr1_fVf&YnZwmgL~QT%0Lm_%SA(cw)*hatP((w%yTHV=*&&`5uq4Uq(#DS2}A(#b*x z9sN&1t+=!a9Qz1%_^4Ni5Fp}QSNN4?CQ}H`fknlgGl8p(FUjyVh*LH{4g!Hdnfrv0 z3@CAH8&9sF`>6Fk_n+lG*!~|Ni4c~h(Gjs^{ejA|rB=o7GPp1ydXvK4*3nx$-3Jr5 zpMbx_f)3$y2&aET-l8c#{HB|pgBzHjHj=+^9M^q>Lr$etx!sn}HoZ#9+5F3_DT~AHEet)p$pw`jJFCky z1S5}M&lEL~^Rn6JA-gR=MkKIs8d{Gi*rq zxMm>pGg{rzX7U|!28O>FfJg))60(7s^Xr|b5GuI81PqI;cj$?qRaw;ODk=-~%nK%j zjpQ#%Q4)?z7%q}2R*3^7d+tZ6PUbELVKS#*)GpkL2A37LWorj zga{)<3_|wo+;7v0N^+k*?UHq%t>;D#n5~=!;WUD5zh@2eV~y?J0ezdSni4J|^ORA8 z_ZO){L(X;4y_46mE*lO@wWd&q9qKxSyd!WVW(t41(fqcATkl;NIiRdYcoLU9} z?}J+hwE=!?tE|@1?LLRA|5&|hzD0*yU40s20Nqcj5l|s56(V=@jEZdy?VAWLs?1jS zeH^BUCcLLikmJ;%A(uw+E8-!`YS){bWy#Zn>M5F}K!8GDBG&Kt-EWOM4sA(?pm<8v zV!D4K(Qw0aJ3{D)U){M5y%;h%5j`aX{B}^a__p_OpTk{`h5Ou#A(w^VDUZZ+#3aG| zF48=LBe$EvQ8>jO<|vl$VCTq0LADh#=&G#A9_Y}>%X(j>PUoK`TpzBdh#d(cNVwd2 z?P<2CfywWs&utV>vD!m#q=AsrG0r%eqyK-9BaYZC2t45^=G(GW2q9CpAKSNW#guJ{ z^i1BsV~~cp;in)GaYGJ4E~{+4NxkJWz&!=xSPlv3e0oT8=3=drJgwn;<<`sOih5A} zC$peHBn7g?EVN(ByP{ST1U*hC8q#`@@RV9m>K+fBR$P_)g2gr1p(ZcO5<&6R;edY$ zp$>Kc3Oj60P5vC5hj5biX_b48JQT^-PU&z7$3+q>G;_mKyWm*9vqHC1aEE(J?X!n0 z{Qzkk5GL`Rs7^#r;Q*fiKH>O|$-7RP1dc}RR}EbVz06<)#ZxB0BnqZoUSa)9vZDLe zC%G^B2HU0T{39IcFp)+rF_C>jzQKP~Zknu{yXZEnz}v>+Rerh`$MaUg44p7^BGBy< ziFButKGNC$;HU&)2xY>13d7L|N3-{WdHJ+%OFV?_YWi?}cY#2HND_Vf8fjgmuqdvx z`j-;wtbq=$LyQv#dZ2XzREVTPI2C&(0QDE`i*;6|D+m^Qo6c@b-*o{9kdA+V%WPg| ztCDU47!No_Q5JL?Q2VK47pAvLZV3>D01|+J_*tlr0>|>zG=MzdkqD@qV2Kt|H~|&U zuWkZ21)(sl|H#8|f-KLPWQB9ImDT>?J~`ZEA0*%_DyQRXxI-*tfZepzvIdi!`R0Ful(-wyw=p>Z!W??N3jA;2cvV6gLw;BL?4;LD9mVq9 zo?AyOT|W3#nU|HPrEFt(io+kah&?tRoLZEOs&ohEFN?;zLw)IZirpE4j2zcK#2`2L zF;wGWCajOFk&D(5KfnT_YW5qf>hX?t-zI}QQXD7P?X5k6uCNygV1)gJGFvg~qp2x_iba+|07N~ylaqh#I_W&qvW zl>k%}M=hh`m`1c~en~X{@N>0iI7QzzmJwDR&|&(uZqlrP>c^g&EEC>;TkA74*B0u) zR()pM`L&S9BBJI`QY86PojDU-a7bI27LK%V$i*`B_X^GKvDri_v=6^gi{P1HaxeqO zk>9caSAA0DrQZh{2woyE9KvxtKl7Pv@QIlDMkAiVlb!8hqAiwlSTnKmK-BV6U&rO&0);aINL?MJBlDc%TA?!NP9a*d4CikB)x!+5hzFR z7(v(FG08gFHK_X5G?W4sE|)~Mn7=9Wb%tMeA#frU;5VthF^xy6|ki5jh za9yq9zY|6fyrdC$J$t<}&sI;-GO5$G@RDv!!T%p@@L;b@UuYKFHZ~APa|MELl@r)FdjOk$5Dr4kLaX;GjzRStrk5( zp+kij2`YWjt@Pp3M6CWXo6}=^b>~9(<354_RDFMVo zw=1aCD5JP^ON4!LOC)mR1Pe6c(O;m|27-Z>ZJon^iSa0>22mc}rs;Z_tnQ;<_vt?E zFS4YF?M)*5D;R0QNE1n#Fw(vCm)ct?s&t!VJmD~tt=j)FgQ(#j(cWs&k|aQq_X}zb z7i((qF0;bB3*0#2;xbx<(dunvl_wg`KxK+7v|~xAJzn)BHq~i*?>`=TunrgsGRFz1 z^^SsnZMp?hcbgQ+CUqPywX_(DNfn>d>okmH&^MSE(NV4G=Eh{%C=s9+;T zk4Soi(Q`K-tM=z5r;T#3i0ubjZgOh686#vlU5@|I4QzNAvvTQI5^%{D#|G^f*L4ixq-9iJq4to zz8&Sk>idOsw}lrb7*xWef(i6PEBw2Eg!8ZR-zTGArT?bMu2bvNI9PzGQg_@w)HwYG-XA9lP4O$ zewM5wPMk2}M1P44ffSA#hJS$*?|HIwvV&6BWnMlcPcPw+ab2ee^neG2=Y5IEVDOt* zwlZY3mr+%2(OU~#!yQ8nlU`6DO-VQfB%|iB;ZTf zaCT^set@Ij`~vl$0cYTajx|6h0v++xJV0gkgN#}fH%vM~qR*_Q`_0>Q)r5DcjTkr$ zIKHz(>vRMD!gSpYYnF~(Q<8Z7Z0EEXrW80&Btg>77>%I4wb`!{YRBGxrDc_d*q9bx z;HC!9i9|;-S=e<7e3aF{Rv{Y)6gSYUOV|wze1tL*ZcTV-&mXD3{d$>>=%RbldNj?CTmT zTclL*tZ>!*aXJ7U=z*R-tZ=dlxXSIjUX z`SO?|j2KbxP66nD=%cg+6U5ag64lu>D!@mQs)a<(RP;`=k2jh61>|3Km14sxsW8fZ>Mv)+7n1*(=>D!Q$D7hdEhdY7f88gJB9)k6Q9p&}%WOVeK9QCI=5D+{ zz)5eS1v?vm@7?Zs8F*TiZ08a-l5yn2;#LX`M86P1ANp1Dn;b@q@2_Nj>$=$^SvNQ-Ts9Zpu|G7DdREW9wGIJ$GW z*;Hx5^5yx(qS*m1!9Eg!ww<8FGd>^*)afQnHjo5=2FfPL)nT9o`Z)lb2yA;g?3;31 zR?H!OfHw=r4xAPpkskl_Q*)QlKhlKVJ4~l`h?(KQ4%93i5h95o9#%>R9FgU12Ds2&mx$jdRnovku!mbjeI&vJZYd4lE6PpUgM92L?m?z-pMQN-YN3!I zH@1a;8S22+A}H9&r2Xw}o<^<?oPxnkYI};0#fa zkz=#Vr<@n*4PNt5+`#nDmV|TdtD6v+1ax4ZHEaBeYZk~kYy!H_11)1or9aF?&6zcv zgwJkoQ^@rXiYPg-LkAfnLR2E|6QqZmF?}R|0y|wEARRPgxGfRgR_Ot*9~?PQR7QgU z4X2Q>IVtmf;Id|5g{t5V8M(?cUEN1n9d7<1n1ONu0g}~DBXCmhLsDrZc$gFn3oApM z?%4RHyu*A)7;31V;}nRbfE3hvq=?Hy5;ttjz^n~Uz`dZ~R>`Uf+rp|Sff+^;(~-=7 zOci|AG}KH8&&+ZY2o#aiA)JmoSBo0O>x>%m1>B^{E`bTl$3c*T^Km2%aY-GrFWW-r z=ZBb*7;4~-Oi<_`@8=!7P{p#%=dd=qrKyL?=wrov2?XJm`^WQiu# zmX~Tjq-!zUz`m6v+?~s2&J%1xp*;G3-g$!$JM!oRw#DM0urXCZJp}gaRZTne+&!M_PJ_=K*8C5B-o~G9jOVf5YDS z5v%HH*YJeOC)bEGVQhIc2;bwhVPqW#XP3!JT#%bV!GQrb5d!YPb|le=K=Yh`LV;h1 z*R-#bp^p+E!_-Fri6nWZby9gYpatx~mE$LfFN`QcS$RM$tQcxMAcyc|& zT>&1+LOo(oetN|h1uWU!m+Hh;DLc5kuZ153)p83 zV>oX9)PnXO$~Lr*1RTjNLbFWjJ6{P*U>^Y(j(f$)8mOw4?e=-^{uG0=xl<^jLHX_) z4kI5_cIQAAsQI3kMVdc<$t)lbW|58I$9u#Pi9|$;z$`PWg`RpGA(l8emZwNi0EQ#G zogc}1%{A&CF6M#Z<0Y2^%~LRmO&B&=qJ=}6yDFm^bzfw^?t20+mS`?KPuVy+;ponA z%VSwZ^@n8VBajN~DFj6!3>E*ysYb-LPSH~(7ugaD8uYW5|#9Rt?)M?VqmNz1^hq} zq=(Bp+7j~Nj?LO9YIeR|^J(=w-R{!-N=PZ#SVAv5NL`46SL%;4bsuw^54U472dI`c%n1TySJTy2D^ISO>EzSyO#Cz)T0~XU1S1%o;eMF~CcIgXw1lpbk!(0xqK)V5I}~^J1_LX4HC5 zcSFo{pnhfy*1>GKU)`t85H|y=pB)EweO#KSEAF2i_&^JA;3FlxgE3p`8R3D6XTl9k zJpu0EdY2}HU8%wJa|2N4_idNM-=@F}eb;vB95T!0umUrnhK39PyM_$A40C9>Xg~vh zLj_Gt046P0b=)fY;VK~@RBeWXqMjfc1C4+U&jpUx%WrLGLgBqG0 z0PNz|l;vvfwDM(gwuw(|b0TRG&B(j+fVXeG9k_7$I&;@LpHjcPxCyEMxb_6*_ zEj^^ZVsqzk=&Ay#V8;*$=;4lAIO0u(9gs(XI)*rKEF8$;HO)UH{X^FR3K2;nI|fXZ zuA^lR*L*u9(3nRy_`$M_C@sQhIYiqRED0wo)`Mc{pofdZ=rA9zcSz(A<%|a+kFA?o z&vF%$pD3x~p7y7MF+7fca7cgNBTj&D0t6T58|DK#f*V_ad zKmdEdb9^u)2YEC;0v5m@vWR+{9b9g#y1R!cF4zEhB#C~Z#C@`5f!bP#6p@bcOo2uU zHKZzhvGJQWIAqA+VFaGhRJH_%H%6F)d33)7knMN96+a}r9 zcm0A%h@%O_2)ar;_sgOH9Zeib6G>|;2Kvl@k@b`XUv1$``>Nsl;(mcl$fF6y2@_5j zyUV9&BCj5_K#w=9fHHCRW>q%yuYuv!!W?gOaguf&h=>~b1?-pmRj4AJ6Xj^a7KH8; zfJ48sb$A;TQG0@!he_st@JOV2+6+z!33J5Bz(~3sPW=*TU`G?GquS%H9a@A;$fHTu zIe4)}=;-bd8UMp0IIg{=eCJP}MR2fm?N5vRu2e=-vMsv>ewou@nFUY8)hb%;? z>*m%LD^h`uDbA=Rj4n*kLzaF(S0#=WX+R%EFt$b!#=_nzWt+QU8Fi?SBP8SDkdm%6 zgZ-<(992L`*U@y%9i6jl)Yul7kq!7U1QZR}va#g-E!+HmmTY?4umd@&gn}$)9kH_v zcPWTIpigYzBgiO-5PFT5r)C>6E2IP_;N05e*LR#rQ4N!6z_)%KwKJ8a@w^g~7i#$6iwkzw#WfquH zM*Y|y;R8m%kqD0LG+M{eNjp9o)seFU18HdZ(aSn-kGvao+dnoDB=%5En!^pVo zqO|ybkooqR34E|bf{-gYxPOH`XrjB^ksnItT1lNsMwl5ETrl$yrNR6wY3OGQ8J_Xs z&hHnbzZv2hl16Cr6+Z};NVrQ@u%E9QR%KG2+;ql8+~5JiF)Bo*;%J^<_sQBNk3*D5 z!+E|?BcSIp@QNm_9+Es%L<{c-VoI7$vueYCs!Ie)YN8!MP(jim=Y4R0-ygNN@7ISl z;Imt+w^f#?=hw`-ScW)%mzYbpZs;oR!KsDwsv=rewSMTlB6ih8bai0h~t+ zAG~1_-<8uCxf+1WVL^omA&`lqG3YMbvo%o25J@$?2MG~?)gN;7%K*=V*x{UnCv+X9k3BWPI9~^Bh!m0pQApU^za_;@Rzpp1 zgM~;Uv0YuT+M##PXgnhUbU5D;P(ZF^tCFWTj*q7pkq+=Y_9KNDa?++R#9$w|IVkb8 zCraQ-6EisnCW<+-!g#h9uP@gB20tYa!|Gdt<(X9H;uq`AIn+p;Z|d(1PEM+5bfy~f$m($`@6(~3XwrBl$#(dy8h{q1nj_dCA(E~)Qo5B<=>`SIl7_F|cr< z>;;&pfs0U`%yp0u*6?4#G41114SuJJ*~%@PA7c(~M>x~wLs{MT6bsWKY-Y-P-^v00 zB!dcv1&~Egx>DmbqfM7a-~HH2Ju(1?IE^Gcq3{;h9}}qQ^rpxhT2 z7VCBmDH1SYtVV$4yrq;am041MP@A;>gB=Kivb1=l!$WIwi|b00Jldq?Hf^e>zVh5S zG+v^&g(WR)NYU=+u?m_tM_`9er-a%OPJjc(%d?(x&6vD?#KJy-(jQqkEElC_fQpz4w(_eATb$!Uom4=!RT(E=l(KjC_&P6n6`mOO_Q{^OSZ6` z3(yWWUXVmBI$`KewFUQo0B(Y`fQ@*N(vtXyNt)m8==e(yoYZdoAURty15 zwU>MbystzYjW9HSdu_fesh+5kIvcng!WPGk>MI$gKqQ6U%Oa|bou8oklIpY6v6$Er zI`DkO19T$Li9mNWDf^vY!{-ha14J?Xa5#Bpnf}SF#Xmy zkd#hrVZ(rx-`l?^h+AbVN22u|j|?CJ0x;%fl)vIJNsH}Kq0Z8OBr0_)|-p`ARL zr)yWryUqt#yP$g|(2(5yy#MXD;lX7>_4h9TI~j`eUPBx$uwItp1el9w`nW5Lv}mBx z)evKU9JZIcg5ngRESQ^=u1tBJ7900<3Min>o`Vqu%vY}+${VrPu?SeNH`)U$udv3(Re&TYvm|hBLnsz2}Xhl0U~Z`CJTRQIP5c}p+tJx z<~pElu8+|+*FDn2V}EHl>@%gIM0$EEplv39$7q{LU)zjl0X;Q4Mo-Q9qzM?s<715C zao;GO1hmcM7;Q7@Ynw?NAWeJ>Y2v<~ng;aL^cX!g?VI5N<0d}FxQTnUUqDZdkI_@( zzMh%}w9WJwZ8Pm{o2!7fxjIJMT=k8cfEgYiV}{4QGkhK}!{^7C;q$(66VOxBWAxO2 zw6CWo0c-f=7;E^XZw(*c1dQUFV~paP9%&WGd+gBnfB?MIKUE(k70?%y;gdFMG+svqKJDfihxlZA7d29J)<}d*lWhe z*lWhUd(ByZE}k7j7ti{1aU7tF<74Q5;`jzDt5mZPl9y{j1@@Jt#X%1kP`RL9z`9^( zcM?<%Ng;9~gvv7NC=p7D2ugM`S+Y%|<}NMW=N=3YTM_^u0>IM)6+#pDIx!06ZB%62 z=tEXSd0B&FDP3o-97%;|5YI*ola1ql6NzuHcxkmtcTI&V9+yx$QkXyrt|iQyuipkpA)v$9 z0}^t$Z^cd}x$5V*B(U(pWRd8Ox;mR=U)Nbuh+Lgz@`Q$WT*A4~!(^0H2v7LoR4h^d z$b* z4nJh)63tB@OiDqAa5_YP(m@t?t{Up}*F6(pn{M%KiF=iIQV3n{xqgv^h#+LkTyLX4 zef{>2U;hq0#*T^;=}1SBY(!}iLDODV%1u^7uJ~aK3yvMQv24pOd?t`e9vv&Hx1o?@I`Oww!gj&T8W(a zVe)Y@gpnaF8B5yl-u&?Uuit)s*scRd4wF;R=-qcT?BGI`E%z|0>ZV-XC2UR<+yJSf zloDm9sfK-4LlokqBTgi7(h;|97^qbgWWBTqfp!aFc=iePD5r|92y0IrDNK-G zNsDV|;U%zeWxw%%1V1tNLl${AfiNL8I;5q86m>~9DR@>_plXBK5JL?Ul2ITE1-sr& zm43*Y<`1sIPNoczh44IyMmjxv|6DH9++R8a{F$<;)ak5y{u#FgK1TuUg@%tRq2fHYHX#}pS z-Mc}@B{g_f*^Y99fDucSh68~4Q=Nr0@DQ0m=cc4aT56=FW-FsCtzao!CHc$MAy%ZD zK$zGLI_TAZa%H|3B^nMMFhgX*gx9DI4x4+rm!+yV$o1D^gnIipqV3@Lbx-%gQB{@= zxR7C_)S0tB3LHP`LqN_DFmM9kLPVMm#c#T1PZ{pp7~`nvDvnTva5VFt=F zq6Em-J%{6x)jiZ&?yF>J!q_5c5Wf8!MmDH714*NQeYUDfQ7B}$|Lr$4B(+#@_n?Ha5lCp^D&kg-Kp+7VF zb4q_w9x;9Y-I%`o4j$am2Xp#!Pk%0d=+7nnc_jf}UJ0m}KE0+t$Mok7{W+ncj$0_o z;5+)i4Lth!n!bwLR}}d>`pX8e_#*%WTFRrBF^BqjN^vLV(~ZJO0?sJl)Oxz0PiNNC z8~Su^6OAqLK_DiY3F;-%oU&QifVPxZ6!6LhoY{}Oq@GMrHk*DPYL{W(YZ62w}}8fc{vY?51P$De`GQCls)i z8(_M>7!0spQ5cwSPxL2z5c?yif52D7@`*s2bEHiyU;g|+A?Fg3J)Tar$#@0N;XnLq zVX9LdGhGO281+pz!x;{UKy}4`RH7+g%J9Yl`R5%4x^5W*_;jHOOCSCG3kAB-*a76v z#mR0qZlCBv$ASxgq<>9E;)%*n`3Bh<0wNYorGD33uKcT#Dr*(?r$X(TPf0O~Vto|N z1YK8aags4MTdqYv^RCeQd8&PFH~i-6OzDQ~&-b*w=Njd9q$uDE*|+=?C)!B4*5vGl z=d}Ax_LsndK8RzXq&O~rA31F+b~9)ew=>h2hq8G=e(`du>AG3ll(G8Z`pDau^KB*u zSvQusDwrcZ!N%vT{f4+ZH2!x5P4vdDEBV;y1X3R{& zx8J9YTR!1tvGrxGIz`9$Tpx4oZ!=wmO!c0hno|AzB^{{xN_5qKHo>gbRSS)WBFaKG z^4K2KyjS%RFxA>uX{Cj#xVw>I4o=yryyYgnvd!dtp4lDP>V#>G3@)kJyB1Is(M0VV zeH9d%%TmME7@DYE(>AuzZ~Xa0%z)MuQ5GphV@x&WrFRf0q_1c{vv0V9vc; zTq?X9Iq^`ig;ZXD3tih?X=>TTx)#J|?OdK}W{C2g)3)0edb0xOc&w|viA#B6OUsR% zd*i-#j_uBz*rUi;kz2v%Ds$!KO{=D^)lV~5NKAEIX*$1Ca~Q$|Svam7gJ-51EYqvr zRe7QIUpKA|u-KkA(p*xe%v5qRKi1Lu3r$gR%rT-7=9U3}=5AN*d)&izA$qP`S(TBw z&|1N?T(4E#*-dt3vgp!)E&eN=#_im~x~nrt7Fu^E>zNDfETidth9C zphDf)woz=agID$%>+XS>ZAeNHXR+4fL4!S(c3U^k;;GtJ#xlX@-;Ju8Oy9%I9*qm# zEScJ>ob_pctICXdGVL30Q>zuto|SrBk!r4*NUHgv+xBtyqFaeulgY69m34Zm8*f*d zCTIVd-RRce*fPA^zU<5-rDu_bXtyd;*E+8&mpIn;m9x2Kw3sh2t~ZvJ>nw3Yd0e;F z=~T7yda$mgz`8$ZZW(ypwpj5MAgXJuoAC>KD>v1D7Tf9ATCS#3#N5#>Ib>%yL00aG z_9^-%!mwJ~ewlUp>&kB7c&tyYST}b2HLC2%cw!lKs?<^o=l#UOno_xZBNidb!MOzD6DV4 zo$Tg+V{2$&TeVKRxOK!_`=+a&(Z(CO-2%?$`lhyZq;>1{ct|nDGfj0OZ8e=DI$SO) zGkxahS_<2+%ylbdj?CLuG)?R8{7&?)xwX^R=cHJ3Z<&+FI4zzvGy?6!MLWV#rGv5Z~Yy0|ksJ8fv}-xiuv#Qhy}&9&0?*G%8z z^iS%U-@-Z3y4o1j6LmL+`2cjQL45vy6!)%S3foYxbKCcAM=MO%?Zo9JX`8W|`leUW z)_2ydpXo;J#9mX{5Qw39m0orQ3=RK^+?>rOc2wj_n@C1@1>2lX^(krls^f{hNMf7# z3BE|);ET59gfUdMSv~hE6*f8${h+SKo3Q3djsK-l%?ID=MNonU#5eqgz-v zn)@9ae|qQu+fR1Bnl6fF_!yDhl~+oOA~wy80? zW8FIvt8LQtt=nCGrMarFZ9}{DvUEm~9!oZ(fn9icVXuLh4LCvkT5Y6YV(;6#oi;Y1 z7xt#}THkGZ*a!G=?UQP0qMCZZOxJ`^a{0 zW^W#iVBA7mzT;V+Lt?61?^AnvFVy&(rSIgZpH6j2r|Q0E8atdgGtCOYb_PcHdExSj z$aQ<}u_?H+c3dwVo6=4@Ph5r!JX+XJwkvJboc4ND=31YPwNSLn(~IhVTG^ztn?6VJ z++N1bb!UoaSxj|LyX{Pmuk=;9%e#?_vAG$X86I^lAwysG9ZrLpu{vDgN!D7)FhQ6HX!6bWvqCtP#N7D%vPaOfzimS zt7T#5y-e`gXSiH!bJ*PQD}8@urDb(HK7D1KyYrani7M&`8m7#(7Hjl>@O~JdG8tUbrk1Bg z(ID4)7S2@LD58tWHJ+X~oed_6%tOPoj#zwbrv*$VdZHJm-sW}=r84s|Z;MAx2}|Kc zRxHDVGez8@3w_jd&i{6IiAJv$c4W-X2AU#HcO&LLcNl%hl7|GPZ}gqS%u0K6#~){i z&tPH?lFmxJMxv8{R(`)?o5xdYm#J)~CVE=r#2!pDP2poshAwMCZ%fnX!j~pJzgAiI zVl98!bkI2Zor^t3{Jokp@-+#LJI}*0Wx<4bK9+b zJhy{!6V*z=e7uIqdL>;qhV?zg@+CA2w#~ys_quaOLh3|acDfAki9QKq%@=A|2}**I z?bhI;&Go5xl?br>6woLINMyiKLKUrOjy&&SmVc09JjSw=E8vh16|lZoAp zE+I_2b*gS9r^XnXS;2P0AXwOE8z$`z=nCI;_6OD%j=jT7%QC|@tus7CsiZc|rrOFm zo9Zcmi4qf}+ZJ{p zPfLiIVrkeDJAxYH8yls^Y(JRcuTe}5+aKrh=uGUTd#Y(p)0H&tn<^94$~VujIsAQH zBeYYNL+F89^AuEwH?K`Ex^W~p8RHFEl5g~$(zVuftPMmX?c_?In~vz5Gfd`cJBRk} zs2X;EIdZ08I?<(__-rwp$#;vv$b1~@*&LI>{!!G z&l0%O_J{LMv&~yIc%z?VG1jJdrp7gq#9Olk7h1gY+R-S6(rLQ_@jp2|%Tq1lYR_)P z`!&PkrDUtbom930)>HusNj z8@Y)y>nIL(=FOcXy3n-bq$dM%Hn#&d*P1DBIKt38Zy6An-q@Zdq={w|{B)kN?Lz#@ zS9n`ZXMJa7jak|k6GVr-<7Cq;#v36HcwS4i8%)+s8bBd)d4?D8Sbdb4!xEbh+m@i@(Pt;WPq zhs#uT<+`#4X09Fh)Lv3`-}X#9;WnMwdu%K#aw1nM!_jW|D#LPe;<>tz7*fx*jX37N zM6zTM&uPccwGWF$UZc`J3rE0mrtRW?&1m73#$@cUYpxtV71u7q<@nK47$(=c`Qyy* zjbkl(v=|(*+R|$bxf?`f+Qz8W@e@25>)K91*R!V3<9)+t_Gfm6p)uv>!$)~EZQJDs z%wpRTK(Z-}tabiLKFI;GoIxN7Ratcm#%BG23fB`W0&@36vn+6;cmju4(el z{xnncuwznfv5cu*+N4XgQ_i`?xMhK+bI#P5q2VCt4W^oW8pFu9!ZLi2xud6AVR;#UH+ZsoXBZn>jj45vv)d0S`RkbHb&kg{=fghRx#qK- z=qKorbd1>lcxT)lUcb>**GxalK69nowns3h`U$yyf6V-uqi?3}W%NATo_vKXt&oRy z(A==T`NtSaZ(*rLWR>fQXi7^H*-Dv*Z)O2u{nq+K2DlQ#o?8osl3;^>9cLZ4bJwU~ zF|quR=)sPOBcno}s8^128NL+}hK}hgw~uvSW?vx+Bm#yN zEHSrc6Z`mEw`k36<9*T>!odz1U1`NhJjdg;ek$q8)?6Oly3o$z#IDUf(w^6N8mMaE zUD>HnE=RRvY$(Yk4)6AV9NDj3+qn|ce${`ahQ{ zp}}&HwAf*{-puAbhcfhnKjz^hJ@ExoOnPM}clPp?DvW96P1Q14W@?vFhk{j2U%?vmmxo1F+e}F~|0v&-=sUSgV3( zbcm61W*;<+U4;yPrhUOtBup~50#i;0v5{|!#R-r+s4IP?=}&gJvaD?7(23KDc%`Kb zO?r;UI4AOzW_=^e7*ZNY^=I5T!qiww)LflVZq260yT*7)4)=1p(CRR_Y5?3==aI~1 zLU#^Kt?-9wF;49qRwHhxyU^k*M*+mCexBCh=$_hIudNJ!V`deM?eI8ery)naTSMEK z>*XqybY&eSLYKq^ey|qpRb-M~+b4?$4v}joUk%@$k;XI~T!?0RPU96G`@-Ts@x*cb z-E4;e7io+iGV3p{G;^)Nb3AWjPn#>DDoI%-Sc^=jKZMzc(Vr^!FH3h^4w#CYnM&PW2&T$lVBiDylFD&QEo zxeKKJ5mFml&xtZso?Z@fY9xSO>zfsiv)!$;yc+?33pG&>tCNkDBQsOzr&>1QjbrFd zT?KunYMC7@D-*HSkgOa%g99HArk0x@5)W6cYDSR;BE zEAWG@&Pa)rKIh-mmDQ@}nb`T7T|EBAK8@9xvi%9fSDJ3<=3lSdskLmoF>D;tca|of z+p579bzFSbSDtf%6mg6vwj)ikqJ6WwuLhUy5dju|3%iDnb0#cYrUT+>nA_*sX^Pa**-c@q0)c}h*GA7nsLV{gA7GQ7YsGV)#$Q&`wsUtJrI8=F~pCh{RJZI8Y zx-p|*^B$kS;qJJ>Pk40hH0-*H1yU(>W=Hh&k`vf@qXptd?yG&?ITr~s?UpY?Y=qWB(#-b!RN3JTF=$S4P$8o%cR@}V(xMlt31*yxbN!KqUS59j`QLw$f7bnP-Gj??vw4{nx8>-6qu&3zo#zl->b@nk{)zli3a z?|=LI=>H%8{a;^x_x&G!ct-y(W;191&nIgC!~K8Lc>MYPzfbb-Pid2^lO}ojb6V9| zS-gtk%gM?2$u@lzbwlB#eai;P$(#Lln^aG)qCc?LQC3GulxNF|K8!xxWvja=$@B7m zLmfSp`=}|SeVs;^oV9n`HT`s7aIU z|5i%4%d*;>{4ralMNL`#$M^sK{SW_t^ZS$EcQ<-=4}Z*)=C-W1-IJfvU-wy+)-Qj2 zq8upbzf3RZwB`Ow>i;)C{Krq!YR><~V)1$Yf0FtC_4nWX;oCQF zFSFw0$82|-<*EF6nU|~klb^o*`uBhO_Hw&Esnce^yIkFF#BaN&6VMzZ+A>Xl4FJkt zbflc{n`Bo>^QVLYcYm^LbuWLZ>GV`Dn?31Uc}@m~CHj7y(ueD`SUr(EEADG2AXPop z6WNtn(YS#sG2@*8O}Qg^`jF-fqE6|6TBY@fkgUiWLZH3chix-x56g9`J=mnpn>49b zcR!`|KBuy&FX?DaAGIfnQ0ilUxYu>NO@&JQk0#6Op7;8@nz7d(u?|+B@cw)HY)t=G zwg0h+bVU1)E&+!AUySFo&-(vU{5$zP1wPOJq4{sFk4N7Bjjzo4Kc9{#pXdLl`1cO( zd@u8q@Lf;+UNLQ=*O6S~FT1C&=w7Ng`K&ko7n=X7>H87J=E^wPJ#E0E|2)G#&wp%Z`w`~9W&h9SldI43|Fix7`QIm>|E*W&cs#=6 ze^evPKF9z5w*9a8Ek9BJ$5Z;B3F!YxOqYbu`u}g*|B8$HVI&IRrIgQGyeHg*hx>}ufD2#j;%%xm7@brCu^i_09|L-gDAb#KC zq8|PUb=()xi_2fitT+Q4-gJ>{TZrSgU#0%wR$CUwee=?ZAvj0|Tv#$!E z%*GFl5z>?d2Brbn!@)#4VjnkC6C(L0{)t-LzfvUhQBDSJh}S3|NoThKU?+1@2yMFvJL8|_SX;Ta#@uh=x8~)t;%h5 z8HpEW&VuoO8c9ZwBw?cF*^*BApMLn^E&1{5xBn(g1N!vxN6pxvnx#sMrhXT{zf5Yf zE9>m>>|8ZFm;%VlWPQeTM@y0#DTo?5y@*b$Q>y5>twKM7!1$;7t=e8hc~Wfl$tJyk zT(zbubFq$m$#d7Lrj9@^+B{SrLb_WL71VG@*K}2XSv6uAT{R?G!(x>u+vPfm9xtM& z*MI)&tM=8|h$*%A65^p zr9r2jwHkSw?9MbrFPW=sFIqC^`l`V6`MYjyc(2%KOp(KT(B-l%l~si+R@$KOqgF=* zmDNgrY%w3OhF5j7MnM>e6oiGSlsE6j?;Y|o`-kBrc@BfA=C&zY)$X!<4bQqqSkep? zl8r(>C}f+_kwZt1Bzn;iQ^l9B)n^7E?cAblqMQ!a_6_|U&17K`_I8Pnq6G>Sazsc#+$TB!N!3Y+AQab3Xx}p6~M|@QRIclX<5|NhNk1nqgp|P@r@3JLCjKW&iqtnm)-gPpK8bGMo(IU?9U}XW6J# zrPENl3)Vw1o-X-#(&>mMXFsSNKY~W5^k@$uQt4kNK1FC3w#NXib!yAf>0K6*Md;Xn zdkv!pdUhp)O~Hh;+5rT{yTEQjF09U4bX1*fX-8F3n`EilQy^L;6bO}0n*><53)pv^ zG5lU?cL-pg{WD$WYBAX9SHZMnPvBd|#x?;)rCb#+zpgfWsu&uvTR1mBFR4l;iGVpf zefbi!1yvAtX})`X`j*Zhrnl&n$;epAR7c_8({7gS{wdg6CP3z0EY>r z81PZlk%ZM%O&w>}`x4A|o^6idW7sk`UBe&RKc@R5b{Vw0-Z8lMww)mamaZv=CbZ|O+!su2Wn^D}eghAwG?luk z=)RgCdzEi5qWkpeb+>zZ$w|I@6h@%A!x8QCPJ1pzdsN(Dtxa=F|Aw`~G;ZWdvVNpw z` z`%>Dt`ab&g>#_7?bhJ;uFWc6*g`;%rvpM4F=X{a>Rs6s5e9=eu|He}*{u|F0pX0xu zuY+UW zh7>1lORT_UMt~}73)PQDSuk5z4DMc; zbsYV#ohJR5`hPK>&Sd`IWE{^S|7RY5KL7nm{>d$&^^eeL$bX*j-`oGNUq%rb!SADp z{vh(*34I*>r})oHaxVUY2mi+ia7YXAmy`b_@aHA{5B+U_L`Ea{PxPPU0)GA{e=MGZ zi16d&>jJ_JX?2^dQWj{-bLQ%lqZSNvQ5OQf?8Nj_fbOEdBc2S^!O>*f)QDSh^S3vc zX@)w%U1w5(v(v^iW@mAq!G|hq(zoURc=N;ef1nEtPnuwERF*%(wjN?Zpo5m~nIZk> za`Zw(cj%9Q7wiv-0S|bV1jFevDLD2;^dk9+=T6-2I)&b)P5?j3e|OHsV=Fsv2(m5L z`&_tYxwBRX*6U6_efd)CBc!*Q`$*Uhqg<`_Ra(%FEpMZQ`(SBza(zz`nx|d*x^AkI z&SUIwxr^OP%jEn0c1hQc)~gbA0E{RdQqpb1zESUg*RXG8>;<~!_ScE3{$5w$pxhx} zAa`bT@Yi?c2kjI3h*6+U9Qp^RrHLe5_1rHvVnN6eonWV0+rX$ky!QdS7323T3^4i@ zq5?d$xQ3a`-7^qVWxu^Xt*K#^l7^ZIr^9{k8*Xu+E728B;@iG(%DLx9i|C0)@{ov$ zjHxSs(-AbvGiD>8w}Me)Jgt%@<$9{gRyB;0Z@P%@L7k%TyH#R7lslBvNgCx@8_?RW zm8VR&7eDNG`$jg-Y4g~e3h(1%!`m&P4G4(r@iwXM*X4%-8t)VaF?$Nj1!r2nxUd_O zsp5kha|Iq?+S_1@;teI+8I7jvoy&tYDqkLdS~A0rr=6K5M&p2%?qG(sTnFo#^$JJV zK8p565X8L1FFFbdZLD{#&- zmyosrQ-YivOxueE)+|%j#bZTxssd(daO*}T#6gL5{KLitoz2+0VBZHD)^P{8j zWxKA@*G$QjMg9buW?!dks;g7!@MQphSxrACt?4vW8-Y=7=}>KSrtktBCEQ~~-_xop zE5&q)A0z%BPp%CA?`$^yT>s~j{1c(-KP8X9Pj}7T8BcB9ia$lfQ4M?L zGMS`>pue8UKQCYr15m~B%ED5@*C*lH7`bFz-a;!YHVrFpv;`;q~tRy@qoDiPJY!Y=Hvw0O^%#k;v`3g!%F-x{6h20QXKj6CuAZqfK5ele|kS)iYLQ zxDZ7}^Gsy~xXlNZpCL)fltR`V>688e5RL8nf^nrV??s=;u0WfO1Bx$y2g1x{iQ@LhTSp9g z$8cz8W;?vh794Iv9Z_$8L~$sMrEy+F%u&}3VrnXHl~{*t-6;CCi@o!>NhN;&a0gpH z2py>A02{Iw(F2Rmn^cVyh_e@G|5RW6Q+*!2i2f-$djSbPFIemaZ10L^*;B*j-bx@~ z!Sws+zqRKB!KUDU+b09{*!q2Y4(tVaaq%L0VbWF`P#G)tCLEQ2-~mgu{Z(R|K|5%o z3sw3nhPJHIS`+}d_F}M za*FKP2e;ZD^*p<6C7g2I)97E+vmq*X^~jcHed{N`!41Ved{YFCw2<`mqzuVs^HnWsU1!Cu~m@4n`_FrlfGt5A}#?4g)}gvJ-*% z>khESl2BOVNh9db9PpJX)t7-I0T+M4*6p+I)z($uMB}RTAtNb1(HfY&?hI~c^Rl-s zm`CF>xL1ZucGKzt8xLNJlxD46+l>!**cVCuQ#&czwCok1z_nToWmMrYf@>ZH_#1y5O$!ZF zKRZ|*cIr%vSvO%Z>%)$gbql-h=nW&)6=vd&**}`XkqJqYAVtE69{&SmH#B z=tACiq9b|QflIvb~uaL~D(GyRA4!fnd~Pw;)L z{a7(a=&!*=2zj!hEeE-v@-2Y)m`UduVjs>edV}=|>J7sGLGcmfzFE{o-q~N{; zXu4dkBM7ZRDp(!eB@b-o(S>P~J*0d+;@g2@EssG(#mmB6bTnx`>N0<7q_n+d`G_oL z>$i5A>1yI`sdZ$1(`nFZ)}6%G<@!^qlYQBs#Lor+w-vRe(yu~_M6 zphYs^+y0}_?G9={=OYI$&;K?`_8-#!C-3?B*yn#HlgYx2|Hkvl=kwp6C=e18@ z2TEYu$^L4SL8%D4*9`0Yq^zy)d;CB03@KQf7eU-_j{!=M19kDr?M{6g@_r_pV@Z9fADl; z{!1-tIPG*tCpMruw-|Sy4!F_B@7Z}_c7RQmg*v~4!3Te?)6qZwGy8w_1m3-@&DuHO zh4c2s=*9UZo2zFp0Q<%H2~r2C73Xwx+SP%?slB^@_5OccODa6G$}3&+5vV-}GZ5mM zN%6$;4Oo;O+&~NglzGkF%<^T|Gv^i|g^8?HAP?o6qr3Ak=uREItJGk>5XSnd7Rd6r zv9?3c=WrQcYx34jmF?K!Mk)IRipzCbClN$g+M=#6VJJqFgj(j6J;8~A0#IqaoE%6@ zZx^}K7utUiA`{BDTI0U{s|hargzb};5iB2OCram?sv`9|w#j;V`YJm8dabFOZ=vJ`9^z^|H7W-%srAr^XH4Y9Q=f zKKmtkNEi(KRG;S@GtczLwFG{{Dmkd{?i+ab?`4zgD^k8^9R9f1D6voZVF^nE-Q2#^ z+J%3AkN!19#xTCmw2t1bQ+WDgRZ_#9Wr6=5vf9cWOD_Aic*v@Aqs0{39K|_9yS2*gIxAs?RId?mz99Puf!^>rZJ?8_>Mveo9vNsYaf& z{%K$9Pk}5#zGn09%__+g{V_a1->?z+hHg>4^T__Tn)kw+hOQ1twT|@es6S-4OzJo6 z7v)XEgocAwHqD2nGHZU9)Y(eBRh1ZlLqP;)58JD21a&TdV`Q3%;;Y(gc%9ryzQvT5p0V~R16V3P&Z7g;Mu;q|cyDSENVvA67 z^zULnp?GMz0srIO8@r}|*<6qeygm3o=8 z7Eqh~{77xiZTus(Fdt;d$awj8FnBe6%6^_$yB9z0YQIn^&jeYkP-}pERIE^`76g*FKmXNl05?^dj<)nO(u&=)GWzph z&+#FwDR^mSTxensdeYG02qPwHc@A1JM>1nhb+&z0%^_yZUn0jO8#H_V^05t{zx<6% zpH?#qFG8VR;bjeQ);RL=h*Qm^;kPzvihtg+X&&WeY#Lj;)igGtGsdOvyHFF4HN1Ng z_b@Oct)$9@9cH9tw`|RXEOGr9WANFOdN{$?_{89!iAHAcM4CTogt9%>` zRDRig@RI^8UaEyh`f8~7)K3Ymog#U6)py#ggOg`x#JO&=gbGrPQap-wa`VXQSIOPU zW%Q@yKBdE~N~5Q8PdTv4?(+5^^?#$5DIFl}5yT;(V-6tXk zLe+)*IXmy~CjXCLt?>!&e~c$rb2I;MI{94xOIHemXl6FF`(D%hjl{?0%vn!b+EWF2XH9L zm%OrOvW}L?>Yo0&H}2k%_}WE1FeoBlOpUWXus*BrkD>pY{qAygyEz^YR^)p&bLsza zJiC(hzo+v>O!YrJ`>g*z#lLskv`N?%Gbf6Qe95fc*U?Yke*ODDeSdqoU7zICCMc*e z$|@AlH-G%@n{U5=^Xi>V~e*wUMo_rZ{1HhN!3IHlF z3naomg=!+G=MQ%R(0}g9^R(iHWw+Ul!T%jRL!*6_{|kNf9p@4y@|I)fO_rcrC_H+WU8a|j%8uHlEESWzhk_>{ zP7*;il)R)f5_xeTmA;Ogar3}E&@`BA(@$mm|?|*7m5Qbs!-KW?s7wJLq zGN^dkON>#fmN}SK){Pj+b&+cM2Q@Z>1ZAe-5nk6OR*X|^f%vWAZorQYCbFIaj+@8c_m^T zI_a&3-r4)fCwyt;yPC!5Js|i=`mY8ZW0FkD>8jzlR|mD@T3-6Ox`aeq!8QZ@eQZw! zc0hm=%s2{cF;9=~M$m6Sjls9h#MumxXXRoAbaIT<{4FOo0;*5y$)z2xF6|~d{p^%> hf``GIj4XOkP;G?85C{YUfk5yVd;!@T17ZLu82~9o>=pn3 delta 74561 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%0A6w}8jE7Z6hbg#7%5v67{*A|vR{vz(@Ko3dyKmG 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 Date: Fri, 5 Jul 2019 19:51:09 +0530 Subject: [PATCH 04/12] updated target --- data/log.json | 1 + services/openfalcon.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/data/log.json b/data/log.json index e69de29..13f1b93 100644 --- a/data/log.json +++ b/data/log.json @@ -0,0 +1 @@ +{"Time": 1562253483.3644722, "Command": {"search": null, "results": null, "recommend": null, "top": null, "type": null, "code": false, "term": null, "language": null, "control": null, "stats": false, "format": "md", "clone": true}}{"Time": 1562253509.401661, "Command": {"search": "a", "results": null, "recommend": null, "top": null, "type": null, "code": false, "term": null, "language": null, "control": null, "stats": false, "format": "md", "clone": false}}{"Time": 1562253525.468929, "Command": {"search": "b", "results": null, "recommend": null, "top": null, "type": null, "code": false, "term": null, "language": null, "control": null, "stats": false, "format": "md", "clone": false}} \ No newline at end of file diff --git a/services/openfalcon.py b/services/openfalcon.py index d8be47e..43e46bb 100755 --- a/services/openfalcon.py +++ b/services/openfalcon.py @@ -77,7 +77,7 @@ def main(): argparse_dict = vars(args) t = time.time() - path = './data' + path = './build/lib' fileName = 'log' jsonData = {} jsonData['Time'] = t From 7c42fb8ddd65226114307a13fc1ed1038021a1f9 Mon Sep 17 00:00:00 2001 From: r0uxt1 <32229730+r0uxt1@users.noreply.github.com> Date: Fri, 5 Jul 2019 19:51:58 +0530 Subject: [PATCH 05/12] Delete log.json --- data/log.json | 1 - 1 file changed, 1 deletion(-) delete mode 100644 data/log.json diff --git a/data/log.json b/data/log.json deleted file mode 100644 index 13f1b93..0000000 --- a/data/log.json +++ /dev/null @@ -1 +0,0 @@ -{"Time": 1562253483.3644722, "Command": {"search": null, "results": null, "recommend": null, "top": null, "type": null, "code": false, "term": null, "language": null, "control": null, "stats": false, "format": "md", "clone": true}}{"Time": 1562253509.401661, "Command": {"search": "a", "results": null, "recommend": null, "top": null, "type": null, "code": false, "term": null, "language": null, "control": null, "stats": false, "format": "md", "clone": false}}{"Time": 1562253525.468929, "Command": {"search": "b", "results": null, "recommend": null, "top": null, "type": null, "code": false, "term": null, "language": null, "control": null, "stats": false, "format": "md", "clone": false}} \ No newline at end of file From 18137396b90e84ada32737fdd268c574f059c275 Mon Sep 17 00:00:00 2001 From: Arvind Tatiparti Date: Sat, 6 Jul 2019 22:40:11 +0530 Subject: [PATCH 06/12] Revert to original target --- services/openfalcon.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/openfalcon.py b/services/openfalcon.py index 43e46bb..d8be47e 100755 --- a/services/openfalcon.py +++ b/services/openfalcon.py @@ -77,7 +77,7 @@ def main(): argparse_dict = vars(args) t = time.time() - path = './build/lib' + path = './data' fileName = 'log' jsonData = {} jsonData['Time'] = t From 61899ca5e05c8b54c8558069354d369ade4b8978 Mon Sep 17 00:00:00 2001 From: Arvind Tatiparti Date: Sat, 6 Jul 2019 22:49:00 +0530 Subject: [PATCH 07/12] removed build distributions --- build/lib/MANIFEST.in | 18 - build/lib/Pipfile | 14 - build/lib/Pipfile.lock | 50 - build/lib/README.md | 74 - build/lib/data/stats.md | 771 --- build/lib/data/stats.txt | 772 --- build/lib/dumps/catMap.p | 5319 ---------------- build/lib/dumps/category.json | 1 - build/lib/dumps/trie.p | 5596 ----------------- build/lib/openfalcon.egg-info/PKG-INFO | 11 - build/lib/openfalcon.egg-info/SOURCES.txt | 28 - .../openfalcon.egg-info/dependency_links.txt | 1 - .../lib/openfalcon.egg-info/entry_points.txt | 3 - build/lib/openfalcon.egg-info/requires.txt | 3 - build/lib/openfalcon.egg-info/top_level.txt | 1 - build/lib/services/__init__.py | 0 build/lib/services/category.py | 45 - build/lib/services/code.py | 93 - build/lib/services/getSearchResults.py | 53 - build/lib/services/index.py | 27 - build/lib/services/openfalcon.py | 111 - build/lib/services/recommendationUtils.py | 61 - build/lib/services/recommendations.py | 100 - build/lib/services/search.py | 30 - build/lib/services/stats.py | 304 - build/lib/services/trie.py | 24 - dist/openfalcon-0.0.1-py3-none-any.whl | Bin 86936 -> 0 bytes dist/openfalcon-0.0.1.tar.gz | Bin 78320 -> 0 bytes openfalcon.egg-info/PKG-INFO | 11 - openfalcon.egg-info/SOURCES.txt | 28 - openfalcon.egg-info/dependency_links.txt | 1 - openfalcon.egg-info/entry_points.txt | 3 - openfalcon.egg-info/requires.txt | 3 - openfalcon.egg-info/top_level.txt | 1 - 34 files changed, 13557 deletions(-) delete mode 100644 build/lib/MANIFEST.in delete mode 100755 build/lib/Pipfile delete mode 100755 build/lib/Pipfile.lock delete mode 100755 build/lib/README.md delete mode 100755 build/lib/data/stats.md delete mode 100755 build/lib/data/stats.txt delete mode 100755 build/lib/dumps/catMap.p delete mode 100755 build/lib/dumps/category.json delete mode 100755 build/lib/dumps/trie.p delete mode 100644 build/lib/openfalcon.egg-info/PKG-INFO delete mode 100644 build/lib/openfalcon.egg-info/SOURCES.txt delete mode 100644 build/lib/openfalcon.egg-info/dependency_links.txt delete mode 100644 build/lib/openfalcon.egg-info/entry_points.txt delete mode 100644 build/lib/openfalcon.egg-info/requires.txt delete mode 100644 build/lib/openfalcon.egg-info/top_level.txt delete mode 100755 build/lib/services/__init__.py delete mode 100755 build/lib/services/category.py delete mode 100755 build/lib/services/code.py delete mode 100755 build/lib/services/getSearchResults.py delete mode 100755 build/lib/services/index.py delete mode 100755 build/lib/services/openfalcon.py delete mode 100755 build/lib/services/recommendationUtils.py delete mode 100755 build/lib/services/recommendations.py delete mode 100755 build/lib/services/search.py delete mode 100755 build/lib/services/stats.py delete mode 100755 build/lib/services/trie.py delete mode 100644 dist/openfalcon-0.0.1-py3-none-any.whl delete mode 100644 dist/openfalcon-0.0.1.tar.gz delete mode 100644 openfalcon.egg-info/PKG-INFO delete mode 100644 openfalcon.egg-info/SOURCES.txt delete mode 100644 openfalcon.egg-info/dependency_links.txt delete mode 100644 openfalcon.egg-info/entry_points.txt delete mode 100644 openfalcon.egg-info/requires.txt delete mode 100644 openfalcon.egg-info/top_level.txt diff --git a/build/lib/MANIFEST.in b/build/lib/MANIFEST.in deleted file mode 100644 index 2dc25e4..0000000 --- a/build/lib/MANIFEST.in +++ /dev/null @@ -1,18 +0,0 @@ -include data/stats.md -include data/stats.txt -include Pipfile -include Pipfile.lock -include dumps/category.json -include dumps/catMap.p -include dumps/trie.p -include services/__init__.py -include services/category.py -include services/code.py -include services/getSearchResults.py -include services/index.py -include services/openfalcon.py -include services/recommendations.py -include services/recommendationUtils.py -include services/search.py -include services/stats.py -include services/trie.py \ No newline at end of file diff --git a/build/lib/Pipfile b/build/lib/Pipfile deleted file mode 100755 index b769598..0000000 --- a/build/lib/Pipfile +++ /dev/null @@ -1,14 +0,0 @@ -[[source]] -name = "pypi" -url = "https://pypi.org/simple" -verify_ssl = true - -[dev-packages] -black = "*" - -[packages] -gitpython = "*" -pygtrie = "*" - -[requires] -python_version = "3.6" diff --git a/build/lib/Pipfile.lock b/build/lib/Pipfile.lock deleted file mode 100755 index 77d6636..0000000 --- a/build/lib/Pipfile.lock +++ /dev/null @@ -1,50 +0,0 @@ -{ - "_meta": { - "hash": { - "sha256": "878038b22271eca819f66407ba435e825f1cefc9817105ff69ec80a19c6ab1d6" - }, - "pipfile-spec": 6, - "requires": { - "python_version": "3.6" - }, - "sources": [ - { - "name": "pypi", - "url": "https://pypi.org/simple", - "verify_ssl": true - } - ] - }, - "default": { - "gitdb2": { - "hashes": [ - "sha256:83361131a1836661a155172932a13c08bda2db3674e4caa32368aa6eb02f38c2", - "sha256:e3a0141c5f2a3f635c7209d56c496ebe1ad35da82fe4d3ec4aaa36278d70648a" - ], - "version": "==2.0.5" - }, - "gitpython": { - "hashes": [ - "sha256:563221e5a44369c6b79172f455584c9ebbb122a13368cc82cb4b5addff788f82", - "sha256:8237dc5bfd6f1366abeee5624111b9d6879393d84745a507de0fda86043b65a8" - ], - "index": "pypi", - "version": "==2.1.11" - }, - "pygtrie": { - "hashes": [ - "sha256:28261896d9fea0439d5ee521403812b444c041036d2335b86dbf9c9c2ec1a703" - ], - "index": "pypi", - "version": "==2.3" - }, - "smmap2": { - "hashes": [ - "sha256:0555a7bf4df71d1ef4218e4807bbf9b201f910174e6e08af2e138d4e517b4dde", - "sha256:29a9ffa0497e7f2be94ca0ed1ca1aa3cd4cf25a1f6b4f5f87f74b46ed91d609a" - ], - "version": "==2.0.5" - } - }, - "develop": {} -} diff --git a/build/lib/README.md b/build/lib/README.md deleted file mode 100755 index 121673f..0000000 --- a/build/lib/README.md +++ /dev/null @@ -1,74 +0,0 @@ -# Falcon - -Falcon is a library which allows you to use the [Cosmos](https://github.com/OpenGenus/cosmos) library in a convenient way. Currently it has features like Search, Recommendation, etc - -This repository is based out in python scripts and is currently ported to python 3.x, Now lets begin with the features. - -## Installation -Install openfalcon from PyPI using the command: -```bash -pip3 install openfalcon --user -``` - -## Usage - -### openfalcon -You can make use of the openfalcon interface for easily using all the services available in the repo. Start by launching a terminal window. -Now, for usage just look up the help or refer the below sections to understand what each of the service can offer. - -##### Clone the Repository -To start first we need to clone the cosmos repository using the ```index.py``` file by writing ```openfalcon --clone``` command. - -##### Search For Files - -A simple search for files in the cosmos repo can be done using the command ```openfalcon --search="greedy algorithms" --results=3 ``` here we have two options -- **search(Required)** : We enter the search term here. -- **results(Optional)** : The integer value shows the top number of results, like above shows top 3 results and not specifying any values for it will result in showing ALL results for search. -- **Results of above command :** -``` -code greedy algorithms -greedy algorithms -greedy algorithms kruskal minimum spanning tree -``` -##### Recommendations - -User can seek recommendation for search terms using the command ```openfalcon --recommend artificial --type parent --top 3``` , here we have two options -- **recommend(Required)** : We enter the recommendation term here. -- **type(Optional)** : By default this value is all which will search for the term in complete directory tree, if parent is entered then only parent directories are recommended and if child is entered then only child directories can be recommended. -- **top(Optional)** : Missing the parameters results in showing of all results and we can enter integers to restrict the number of returned results. - -##### Edit/Delete Code -The file ```code.py``` can be used to search the code in a given language in the complete cosmos directory and can be used to edit/ delete code, can be used using the command ```openfalcon --code --term linear --language cpp ``` , this will open the top file matching with term linear in cpp -- **term(Required)** : We enter the search term here. -- **language(Required)** : We enter the language in which we want the final results, the value of the parameter is the extension of language in which code is required. -- **Results of above command** -``` -search linear search -search linear search -artificial intelligence Linear Regression -[{'category': 'linear search', 'description': 'search linear search', 'location': '/code/search/src/linear_search'}, {'category': 'Linear Regression', 'description': 'artificial intelligence Linear Regression', 'location': '/code/artificial_intelligence/src/Linear_Regression'}] -``` - -### Generate List of Implemented Algorithms -#### What's the stats script? -The stats script deals with generating a progress list of the cosmos repo, by taking into account all algorithms currently existing in the repo and categorizing them based on the languages used to implement them. - -#### How to run? -**make sure that you're in the falcon project root directory** - -#### for generating the output in txt file :- -```bash -openfalcon --stats -f txt > ./STATS.txt -``` - -#### for generating the output in md file :- -```bash -openfalcon --stats -f md > ./STATS.md -``` - -## For Contributors - -You can find all of the code [here](https://github.com/OpenGenus/falcon). -The code is present in the build/lib directory. After making any changes, run all the commands starting with the command ```pip3 install --user pipenv``` to test locally. - -Please feel free to report any issues or request new features. diff --git a/build/lib/data/stats.md b/build/lib/data/stats.md deleted file mode 100755 index 417763b..0000000 --- a/build/lib/data/stats.md +++ /dev/null @@ -1,771 +0,0 @@ -This is the progress list of [Cosmos](https://github.com/OpenGenus/cosmos/) | Updated on: 2019-06-08 - - -# [ARTIFICIAL INTELLIGENCE](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence) -| ARTIFICIAL INTELLIGENCE | Ada | BrainFuck | C | C++ | Clojure | Crisp | Elixir | Elm | Erlang | Fortran | Golang | HTML | Haskell | Java | JavaScript | Julia | Jupyter Notebook | Kotlin | Lua | ML | Nim | Objective-C | PHP | Perl | Processing Development Environment | PureScript | Python | Racket | Reason | Ruby | Rust | Scala | Shell Script | Standard ML | Swift | TypeScript | Visual Basic | Visual C# | Visual F# | -| ----------------------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| [a star](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/a_star/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [artificial neural network](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/artificial_neural_network/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [autoenncoder](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/autoenncoder/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [canny](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/image_processing/canny/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [convolutional neural network](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/convolutional_neural_network/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [dbscan clustering](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/dbscan_clustering/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [decision tree](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/decision_tree/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [erode dilate](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/image_processing/erode_dilate/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [factorization machines](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/factorization_machines/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [gaussian naive bayes](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/gaussian_naive_bayes/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [gbestPSO](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/particle_swarm_optimization/gbestPSO/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [hierachical clustering](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/hierachical_clustering/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [houghtransform](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/image_processing/houghtransform/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [image processing](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/image_processing/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | -| [image stitching](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/image_processing/image_stitching/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [isodata clustering](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/isodata_clustering/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [k means](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/k_means/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | . | -| [k nearest neighbours](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/k_nearest_neighbours/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [lbestPSO](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/particle_swarm_optimization/lbestPSO/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [linear regression](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/linear_regression/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | . | -| [logistic regression](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/logistic_regression/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [minimax](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/minimax/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [naive bayes](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/naive_bayes/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | . | -| [neural network](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/neural_network/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [neural style transfer](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/neural_style_transfer/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [nsm matlab](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/nearest_sequence_memory/nsm_matlab/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [perceptron](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/perceptron/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [prewittfilter](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/image_processing/prewittfilter/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [principal component analysis](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/principal_component_analysis/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [q learning](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/q_learning/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [restricted boltzmann machine](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/restricted_boltzmann_machine/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [sat](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/sat/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [sobelfilter](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/image_processing/sobelfilter/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [src](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [support vector machine](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/support_vector_machine/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [tsp](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/tsp/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| | 0 | 0 | 3 | 10 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 2 | 0 | 5 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 19 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 3 | 0 | 0 | 0 | 0 | - - -# [BACKTRACKING](https://github.com/OpenGenus/cosmos/tree/master/code/backtracking) -| BACKTRACKING | Ada | BrainFuck | C | C++ | Clojure | Crisp | Elixir | Elm | Erlang | Fortran | Golang | HTML | Haskell | Java | JavaScript | Julia | Jupyter Notebook | Kotlin | Lua | ML | Nim | Objective-C | PHP | Perl | Processing Development Environment | PureScript | Python | Racket | Reason | Ruby | Rust | Scala | Shell Script | Standard ML | Swift | TypeScript | Visual Basic | Visual C# | Visual F# | -| ----------------------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| [algorithm x](https://github.com/OpenGenus/cosmos/tree/master/code/backtracking/src/algorithm_x/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [crossword puzzle](https://github.com/OpenGenus/cosmos/tree/master/code/backtracking/src/crossword_puzzle/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [knight tour](https://github.com/OpenGenus/cosmos/tree/master/code/backtracking/src/knight_tour/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | . | . | -| [m coloring problem](https://github.com/OpenGenus/cosmos/tree/master/code/backtracking/src/m_coloring_problem/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [n queen](https://github.com/OpenGenus/cosmos/tree/master/code/backtracking/src/n_queen/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | . | . | -| [number of ways in maze](https://github.com/OpenGenus/cosmos/tree/master/code/backtracking/src/number_of_ways_in_maze/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | -| [partitions of number](https://github.com/OpenGenus/cosmos/tree/master/code/backtracking/src/partitions_of_number/) | . | . | . | ✔️ | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | -| [partitions of set](https://github.com/OpenGenus/cosmos/tree/master/code/backtracking/src/partitions_of_set/) | . | . | . | ✔️ | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [permutations of string](https://github.com/OpenGenus/cosmos/tree/master/code/backtracking/src/permutations_of_string/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [powerset](https://github.com/OpenGenus/cosmos/tree/master/code/backtracking/src/powerset/) | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [rat in a maze](https://github.com/OpenGenus/cosmos/tree/master/code/backtracking/src/rat_in_a_maze/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [subset sum](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/subset_sum/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [sudoku solve](https://github.com/OpenGenus/cosmos/tree/master/code/backtracking/src/sudoku_solve/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | . | . | -| | 0 | 0 | 7 | 10 | 0 | 0 | 0 | 0 | 0 | 0 | 8 | 0 | 1 | 6 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 6 | 0 | 0 | 0 | 5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - - -# [BIT MANIPULATION](https://github.com/OpenGenus/cosmos/tree/master/code/bit_manipulation) -| BIT MANIPULATION | Ada | BrainFuck | C | C++ | Clojure | Crisp | Elixir | Elm | Erlang | Fortran | Golang | HTML | Haskell | Java | JavaScript | Julia | Jupyter Notebook | Kotlin | Lua | ML | Nim | Objective-C | PHP | Perl | Processing Development Environment | PureScript | Python | Racket | Reason | Ruby | Rust | Scala | Shell Script | Standard ML | Swift | TypeScript | Visual Basic | Visual C# | Visual F# | -| ----------------------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| [addition using bits](https://github.com/OpenGenus/cosmos/tree/master/code/bit_manipulation/src/addition_using_bits/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | ✔️ | . | -| [bit division](https://github.com/OpenGenus/cosmos/tree/master/code/bit_manipulation/src/bit_division/) | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [byte swapper](https://github.com/OpenGenus/cosmos/tree/master/code/bit_manipulation/src/byte_swapper/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [convert number binary](https://github.com/OpenGenus/cosmos/tree/master/code/bit_manipulation/src/convert_number_binary/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | ✔️ | ✔️ | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [count set bits](https://github.com/OpenGenus/cosmos/tree/master/code/bit_manipulation/src/count_set_bits/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | ✔️ | . | -| [flip bits](https://github.com/OpenGenus/cosmos/tree/master/code/bit_manipulation/src/flip_bits/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [hamming distance](https://github.com/OpenGenus/cosmos/tree/master/code/bit_manipulation/src/hamming_distance/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [invert bit](https://github.com/OpenGenus/cosmos/tree/master/code/bit_manipulation/src/invert_bit/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [lonely integer](https://github.com/OpenGenus/cosmos/tree/master/code/bit_manipulation/src/lonely_integer/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | . | . | -| [magic number](https://github.com/OpenGenus/cosmos/tree/master/code/bit_manipulation/src/magic_number/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [maximum xor value](https://github.com/OpenGenus/cosmos/tree/master/code/bit_manipulation/src/maximum_xor_value/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [power of 2](https://github.com/OpenGenus/cosmos/tree/master/code/bit_manipulation/src/power_of_2/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | ✔️ | . | -| [subset generation](https://github.com/OpenGenus/cosmos/tree/master/code/bit_manipulation/src/subset_generation/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [sum binary numbers](https://github.com/OpenGenus/cosmos/tree/master/code/bit_manipulation/src/sum_binary_numbers/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [sum equals xor](https://github.com/OpenGenus/cosmos/tree/master/code/bit_manipulation/src/sum_equals_xor/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [thrice unique number](https://github.com/OpenGenus/cosmos/tree/master/code/bit_manipulation/src/thrice_unique_number/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [twice unique number](https://github.com/OpenGenus/cosmos/tree/master/code/bit_manipulation/src/twice_unique_number/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [xor swap](https://github.com/OpenGenus/cosmos/tree/master/code/bit_manipulation/src/xor_swap/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| | 0 | 0 | 13 | 15 | 0 | 0 | 0 | 0 | 0 | 0 | 5 | 0 | 1 | 10 | 8 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 13 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0 | - - -# [CELLULAR AUTOMATON](https://github.com/OpenGenus/cosmos/tree/master/code/cellular_automaton) -| CELLULAR AUTOMATON | Ada | BrainFuck | C | C++ | Clojure | Crisp | Elixir | Elm | Erlang | Fortran | Golang | HTML | Haskell | Java | JavaScript | Julia | Jupyter Notebook | Kotlin | Lua | ML | Nim | Objective-C | PHP | Perl | Processing Development Environment | PureScript | Python | Racket | Reason | Ruby | Rust | Scala | Shell Script | Standard ML | Swift | TypeScript | Visual Basic | Visual C# | Visual F# | -| ----------------------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| [conways game of life](https://github.com/OpenGenus/cosmos/tree/master/code/cellular_automaton/src/conways_game_of_life/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | . | . | . | -| [elementary cellular automata](https://github.com/OpenGenus/cosmos/tree/master/code/cellular_automaton/src/elementary_cellular_automata/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [genetic algorithm](https://github.com/OpenGenus/cosmos/tree/master/code/cellular_automaton/src/genetic_algorithm/) | . | . | . | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [langtons ant](https://github.com/OpenGenus/cosmos/tree/master/code/cellular_automaton/src/langtons_ant/) | . | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [von neumann cellular automata](https://github.com/OpenGenus/cosmos/tree/master/code/cellular_automaton/src/von_neumann_cellular_automata/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| | 0 | 0 | 2 | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 1 | 1 | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - - -# [COMPRESSION](https://github.com/OpenGenus/cosmos/tree/master/code/compression) -| COMPRESSION | Ada | BrainFuck | C | C++ | Clojure | Crisp | Elixir | Elm | Erlang | Fortran | Golang | HTML | Haskell | Java | JavaScript | Julia | Jupyter Notebook | Kotlin | Lua | ML | Nim | Objective-C | PHP | Perl | Processing Development Environment | PureScript | Python | Racket | Reason | Ruby | Rust | Scala | Shell Script | Standard ML | Swift | TypeScript | Visual Basic | Visual C# | Visual F# | -| ----------------------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| [huffman](https://github.com/OpenGenus/cosmos/tree/master/code/compression/src/lossless_compression/huffman/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [lempel ziv welch](https://github.com/OpenGenus/cosmos/tree/master/code/compression/src/lossless_compression/lempel_ziv_welch/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - - -# [COMPUTATIONAL GEOMETRY](https://github.com/OpenGenus/cosmos/tree/master/code/computational_geometry) -| COMPUTATIONAL GEOMETRY | Ada | BrainFuck | C | C++ | Clojure | Crisp | Elixir | Elm | Erlang | Fortran | Golang | HTML | Haskell | Java | JavaScript | Julia | Jupyter Notebook | Kotlin | Lua | ML | Nim | Objective-C | PHP | Perl | Processing Development Environment | PureScript | Python | Racket | Reason | Ruby | Rust | Scala | Shell Script | Standard ML | Swift | TypeScript | Visual Basic | Visual C# | Visual F# | -| ----------------------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| [2d line intersection](https://github.com/OpenGenus/cosmos/tree/master/code/computational_geometry/src/2d_line_intersection/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | ✔️ | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | -| [2d separating axis test](https://github.com/OpenGenus/cosmos/tree/master/code/computational_geometry/src/2d_separating_axis_test/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [area of polygon](https://github.com/OpenGenus/cosmos/tree/master/code/computational_geometry/src/area_of_polygon/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [area of triangle](https://github.com/OpenGenus/cosmos/tree/master/code/computational_geometry/src/area_of_triangle/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | . | . | -| [axis aligned bounding box collision](https://github.com/OpenGenus/cosmos/tree/master/code/computational_geometry/src/axis_aligned_bounding_box_collision/) | . | . | . | ✔️ | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [bresenham circle](https://github.com/OpenGenus/cosmos/tree/master/code/computational_geometry/src/bresenham_circle/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [bresenham line](https://github.com/OpenGenus/cosmos/tree/master/code/computational_geometry/src/bresenham_line/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [chans algorithm](https://github.com/OpenGenus/cosmos/tree/master/code/computational_geometry/src/chans_algorithm/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [cohen sutherland lineclip](https://github.com/OpenGenus/cosmos/tree/master/code/computational_geometry/src/cohen_sutherland_lineclip/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [dda line](https://github.com/OpenGenus/cosmos/tree/master/code/computational_geometry/src/dda_line/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [distance between points](https://github.com/OpenGenus/cosmos/tree/master/code/computational_geometry/src/distance_between_points/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | . | . | -| [graham scan](https://github.com/OpenGenus/cosmos/tree/master/code/computational_geometry/src/graham_scan/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [halfplane intersection](https://github.com/OpenGenus/cosmos/tree/master/code/computational_geometry/src/halfplane_intersection/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [jarvis march](https://github.com/OpenGenus/cosmos/tree/master/code/computational_geometry/src/jarvis_march/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [liangBarskyAlgo](https://github.com/OpenGenus/cosmos/tree/master/code/computational_geometry/src/liangBarskyAlgo/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [quickhull](https://github.com/OpenGenus/cosmos/tree/master/code/computational_geometry/src/quickhull/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [sphere tetrahedron intersection](https://github.com/OpenGenus/cosmos/tree/master/code/computational_geometry/src/sphere_tetrahedron_intersection/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [sutherland hodgeman clipping](https://github.com/OpenGenus/cosmos/tree/master/code/computational_geometry/src/sutherland_hodgeman_clipping/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| | 0 | 0 | 8 | 18 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 2 | 7 | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 6 | 0 | 0 | 1 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | - - -# [COMPUTER GRAPHICS](https://github.com/OpenGenus/cosmos/tree/master/code/computer_graphics) -| COMPUTER GRAPHICS | Ada | BrainFuck | C | C++ | Clojure | Crisp | Elixir | Elm | Erlang | Fortran | Golang | HTML | Haskell | Java | JavaScript | Julia | Jupyter Notebook | Kotlin | Lua | ML | Nim | Objective-C | PHP | Perl | Processing Development Environment | PureScript | Python | Racket | Reason | Ruby | Rust | Scala | Shell Script | Standard ML | Swift | TypeScript | Visual Basic | Visual C# | Visual F# | -| ----------------------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| [diamond square](https://github.com/OpenGenus/cosmos/tree/master/code/computer_graphics/src/diamond_square/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - - -# [CRYPTOGRAPHY](https://github.com/OpenGenus/cosmos/tree/master/code/cryptography) -| CRYPTOGRAPHY | Ada | BrainFuck | C | C++ | Clojure | Crisp | Elixir | Elm | Erlang | Fortran | Golang | HTML | Haskell | Java | JavaScript | Julia | Jupyter Notebook | Kotlin | Lua | ML | Nim | Objective-C | PHP | Perl | Processing Development Environment | PureScript | Python | Racket | Reason | Ruby | Rust | Scala | Shell Script | Standard ML | Swift | TypeScript | Visual Basic | Visual C# | Visual F# | -| ----------------------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| [aes 128](https://github.com/OpenGenus/cosmos/tree/master/code/cryptography/src/aes_128/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [aes csharp](https://github.com/OpenGenus/cosmos/tree/master/code/cryptography/src/aes_128/aes_csharp/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | -| [affine cipher](https://github.com/OpenGenus/cosmos/tree/master/code/cryptography/src/affine_cipher/) | . | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [atbash cipher](https://github.com/OpenGenus/cosmos/tree/master/code/cryptography/src/atbash_cipher/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [autokey cipher](https://github.com/OpenGenus/cosmos/tree/master/code/cryptography/src/autokey_cipher/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [baconian cipher](https://github.com/OpenGenus/cosmos/tree/master/code/cryptography/src/baconian_cipher/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | . | . | . | -| [caesar cipher](https://github.com/OpenGenus/cosmos/tree/master/code/cryptography/src/caesar_cipher/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | ✔️ | ✔️ | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | -| [columnar transposition cipher](https://github.com/OpenGenus/cosmos/tree/master/code/cryptography/src/columnar_transposition_cipher/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [example](https://github.com/OpenGenus/cosmos/tree/master/code/cryptography/src/aes_128/aes_csharp/example/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | -| [huffman encoding](https://github.com/OpenGenus/cosmos/tree/master/code/cryptography/src/huffman_encoding/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [morse cipher](https://github.com/OpenGenus/cosmos/tree/master/code/cryptography/src/morse_cipher/) | . | ✔️ | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | ✔️ | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | ✔️ | . | . | ✔️ | . | . | ✔️ | . | . | ✔️ | . | . | . | -| [polybius cipher](https://github.com/OpenGenus/cosmos/tree/master/code/cryptography/src/polybius_cipher/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [porta cipher](https://github.com/OpenGenus/cosmos/tree/master/code/cryptography/src/porta_cipher/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [rail fence cipher](https://github.com/OpenGenus/cosmos/tree/master/code/cryptography/src/rail_fence_cipher/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | . | . | . | -| [rot13 cipher](https://github.com/OpenGenus/cosmos/tree/master/code/cryptography/src/rot13_cipher/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | -| [rsa](https://github.com/OpenGenus/cosmos/tree/master/code/cryptography/src/rsa/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | ✔️ | . | -| [rsa digital signature](https://github.com/OpenGenus/cosmos/tree/master/code/cryptography/src/rsa_digital_signature/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [runningkey cipher](https://github.com/OpenGenus/cosmos/tree/master/code/cryptography/src/runningkey_cipher/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [sha 256](https://github.com/OpenGenus/cosmos/tree/master/code/cryptography/src/sha/sha_256/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [vigenere cipher](https://github.com/OpenGenus/cosmos/tree/master/code/cryptography/src/vigenere_cipher/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | ✔️ | ✔️ | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | . | . | . | -| | 0 | 1 | 7 | 10 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 1 | 2 | 8 | 5 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 4 | 0 | 0 | 0 | 15 | 0 | 0 | 6 | 0 | 0 | 2 | 0 | 0 | 1 | 0 | 4 | 0 | - - -# [DATA STRUCTURES](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures) -| DATA STRUCTURES | Ada | BrainFuck | C | C++ | Clojure | Crisp | Elixir | Elm | Erlang | Fortran | Golang | HTML | Haskell | Java | JavaScript | Julia | Jupyter Notebook | Kotlin | Lua | ML | Nim | Objective-C | PHP | Perl | Processing Development Environment | PureScript | Python | Racket | Reason | Ruby | Rust | Scala | Shell Script | Standard ML | Swift | TypeScript | Visual Basic | Visual C# | Visual F# | -| ----------------------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| [aa tree](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/binary_tree/aa_tree/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [abstract stack](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/stack/abstract_stack/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [arraystack](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/stack/abstract_stack/cpp/arraystack/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [avl tree](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/binary_tree/avl_tree/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | -| [b tree](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/b_tree/b_tree/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | . | -| [b tree c](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/b_tree/b_tree/b_tree_c/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [bag](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/bag/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [balanced expression](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/stack/balanced_expression/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [binary heap](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/binary_heap/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [binomial heap](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/heap/binomial_heap/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | -| [bloom filter](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/hashs/bloom_filter/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | -| [bottom view binary tree](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/binary_tree/binary_tree/tree/bottom_view_binary_tree/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [c](https://github.com/OpenGenus/cosmos/tree/master/code/string_algorithms/src/finite_automata/c/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [circular buffer](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/queue/circular_buffer/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [circular linked list](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/list/circular_linked_list/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [convert to doubly linked list](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/binary_tree/binary_tree/convert_to_doubly_linked_list/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [cpp](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/stack/abstract_stack/cpp/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [delete](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/list/singly_linked_list/operations/delete/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [detect cycle](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/list/singly_linked_list/operations/detect_cycle/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [diameter](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/binary_tree/binary_tree/diameter/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [double ended queue](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/queue/double_ended_queue/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [doubly linked list](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/list/doubly_linked_list/) | . | . | . | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | . | -| [fenwick tree](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/multiway_tree/fenwick_tree/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [find](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/list/singly_linked_list/operations/find/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [from inorder and postorder](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/binary_tree/binary_tree/make_binary_tree/from_inorder_and_postorder/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [from inorder and preorder](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/binary_tree/binary_tree/make_binary_tree/from_inorder_and_preorder/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [hash table](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/hashs/hash_table/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | ✔️ | . | . | ✔️ | . | -| [infix to postfix](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/stack/infix_to_postfix/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [infix to prefix](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/stack/infix_to_prefix/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [insertion](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/list/singly_linked_list/operations/insertion/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [interval tree](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/space_partitioning_tree/interval_tree/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [is balance](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/binary_tree/binary_tree/is_balance/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [is binary tree](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/binary_tree/binary_tree/is_binary_tree/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [is same](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/binary_tree/binary_tree/is_same/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [kd tree](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/space_partitioning_tree/kd_tree/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [left view](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/binary_tree/binary_tree/traversal/preorder/left_view/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [leftist tree](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/heap/priority_queue/leftist_tree/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [linked list](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/linked_list/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [make mirror tree](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/binary_tree/binary_tree/make_mirror_tree/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [max heap](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/heap/max_heap/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [maximum height](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/binary_tree/binary_tree/maximum_height/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [menu interface](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/list/doubly_linked_list/menu_interface/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [merge sorted](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/list/singly_linked_list/operations/merge_sorted/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [min heap](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/heap/min_heap/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | ✔️ | . | . | . | . | -| [minimum height](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/binary_tree/binary_tree/minimum_height/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [n th node linked list](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/list/singly_linked_list/operations/n_th_node_linked_list/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [node](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/binary_tree/binary_tree/node/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [operations](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/list/circular_linked_list/operations/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [pairing heap](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/heap/pairing_heap/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | ✔️ | -| [path sum](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/binary_tree/binary_tree/path_sum/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [postfix evaluation](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/stack/postfix_evaluation/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | ✔️ | . | . | . | . | . | . | -| [prefix to postfix](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/stack/prefix_to_postfix/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [print reverse](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/list/singly_linked_list/operations/print_reverse/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | ✔️ | . | . | . | . | . | . | . | -| [priority queue](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/heap/priority_queue/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [push](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/list/singly_linked_list/operations/push/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [quad tree](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/space_partitioning_tree/quad_tree/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | -| [queue](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/queue/queue/) | . | . | ✔️ | ✔️ | . | . | ✔️ | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | ✔️ | . | . | ✔️ | . | -| [queue stream](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/queue/queue_stream/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | -| [queue using linked list](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/queue/queue_using_linked_list/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | . | . | . | -| [queue using stack](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/queue/queue_using_stack/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | ✔️ | . | . | . | . | . | . | -| [red black tree](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/multiway_tree/red_black_tree/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | ✔️ | . | . | . | . | . | . | . | -| [reverse](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/list/singly_linked_list/operations/reverse/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [reverse queue](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/queue/reverse_queue/) | . | . | . | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | . | -| [reverse stack](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/stack/reverse_stack/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | -| [right threaded](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/binary_tree/binary_tree/traversal/inorder/right_threaded/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [right view](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/binary_tree/binary_tree/traversal/preorder/right_view/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [rope](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/binary_tree/rope/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [rotate](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/list/singly_linked_list/operations/rotate/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [segment tree](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/segment_tree/) | ✔️ | . | . | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | ✔️ | . | . | . | . | . | . | . | -| [serializer](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/binary_tree/binary_tree/serializer/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [singly linked list](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/list/singly_linked_list/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | ✔️ | . | . | ✔️ | . | -| [skip list](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/list/skip_list/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | ✔️ | . | . | ✔️ | . | . | . | . | -| [soft heap](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/heap/soft_heap/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [sort](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/list/singly_linked_list/operations/sort/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [sort stack](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/stack/sort_stack/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [splay tree](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/multiway_tree/splay_tree/) | . | . | . | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | -| [stack](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/stack/stack/) | . | . | ✔️ | ✔️ | . | . | ✔️ | . | ✔️ | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | ✔️ | . | . | ✔️ | . | -| [suffix array](https://github.com/OpenGenus/cosmos/tree/master/code/string_algorithms/src/suffix_array/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [sum left](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/binary_tree/binary_tree/path_sum/sum_left/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [treap](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/binary_tree/treap/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | -| [tree](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/binary_tree/binary_tree/tree/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | ✔️ | . | . | . | . | -| [trie](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/tree/trie/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | ✔️ | . | . | ✔️ | . | . | ✔️ | . | -| [two three tree](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/b_tree/two_three_tree/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | -| [unclassified](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/list/singly_linked_list/operations/unclassified/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [union find](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/multiway_tree/union_find/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | ✔️ | . | . | . | . | . | . | . | -| [van emde boas tree](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/van_emde_boas_tree/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [xor linked list](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/list/xor_linked_list/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [zigzag](https://github.com/OpenGenus/cosmos/tree/master/code/data_structures/src/tree/binary_tree/binary_tree/traversal/zigzag/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| | 1 | 0 | 42 | 66 | 0 | 0 | 2 | 0 | 1 | 0 | 15 | 0 | 1 | 41 | 13 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 40 | 0 | 0 | 10 | 2 | 11 | 2 | 1 | 16 | 0 | 0 | 7 | 1 | - - -# [DESIGN PATTERN](https://github.com/OpenGenus/cosmos/tree/master/code/design_pattern) -| DESIGN PATTERN | Ada | BrainFuck | C | C++ | Clojure | Crisp | Elixir | Elm | Erlang | Fortran | Golang | HTML | Haskell | Java | JavaScript | Julia | Jupyter Notebook | Kotlin | Lua | ML | Nim | Objective-C | PHP | Perl | Processing Development Environment | PureScript | Python | Racket | Reason | Ruby | Rust | Scala | Shell Script | Standard ML | Swift | TypeScript | Visual Basic | Visual C# | Visual F# | -| ----------------------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| [OOP patterns](https://github.com/OpenGenus/cosmos/tree/master/code/design_pattern/src/OOP_patterns/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [adapter](https://github.com/OpenGenus/cosmos/tree/master/code/design_pattern/src/oop_patterns/adapter/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [arrow](https://github.com/OpenGenus/cosmos/tree/master/code/design_pattern/src/functional_patterns/functional_patterns/scala/src/main/scala/arrows/arrow/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | -| [bifunctor](https://github.com/OpenGenus/cosmos/tree/master/code/design_pattern/src/functional_patterns/functional_patterns/scala/src/main/scala/functors/bifunctor/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | -| [builder](https://github.com/OpenGenus/cosmos/tree/master/code/design_pattern/src/oop_patterns/builder/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [builder pattern](https://github.com/OpenGenus/cosmos/tree/master/code/design_pattern/src/builder_pattern/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | -| [comonad](https://github.com/OpenGenus/cosmos/tree/master/code/design_pattern/src/functional_patterns/functional_patterns/scala/src/main/scala/monads/comonad/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | -| [contravariant](https://github.com/OpenGenus/cosmos/tree/master/code/design_pattern/src/functional_patterns/functional_patterns/scala/src/main/scala/functors/contravariant/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | -| [demo](https://github.com/OpenGenus/cosmos/tree/master/code/design_pattern/src/oop_patterns/proxy/demo/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [facade](https://github.com/OpenGenus/cosmos/tree/master/code/design_pattern/src/oop_patterns/facade/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [factory](https://github.com/OpenGenus/cosmos/tree/master/code/design_pattern/src/oop_patterns/factory/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [functor](https://github.com/OpenGenus/cosmos/tree/master/code/design_pattern/src/functional_patterns/functional_patterns/scala/src/main/scala/functors/functor/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | -| [gifts](https://github.com/OpenGenus/cosmos/tree/master/code/design_pattern/src/oop_patterns/factory/gifts/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [gonad](https://github.com/OpenGenus/cosmos/tree/master/code/design_pattern/src/functional_patterns/functional_patterns/scala/src/main/scala/monads/gonad/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | -| [gym](https://github.com/OpenGenus/cosmos/tree/master/code/design_pattern/src/oop_patterns/facade/daily/tasks/gym/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [iterator pattern](https://github.com/OpenGenus/cosmos/tree/master/code/design_pattern/src/iterator_pattern/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [job](https://github.com/OpenGenus/cosmos/tree/master/code/design_pattern/src/oop_patterns/facade/daily/tasks/job/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [monad](https://github.com/OpenGenus/cosmos/tree/master/code/design_pattern/src/functional_patterns/functional_patterns/scala/src/main/scala/monads/costate/monad/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | -| [multifunctor](https://github.com/OpenGenus/cosmos/tree/master/code/design_pattern/src/functional_patterns/functional_patterns/scala/src/main/scala/functors/multifunctor/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | -| [network](https://github.com/OpenGenus/cosmos/tree/master/code/design_pattern/src/oop_patterns/observer_java/observer/network/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [observer](https://github.com/OpenGenus/cosmos/tree/master/code/design_pattern/src/oop_patterns/observer_java/observer/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [observer java](https://github.com/OpenGenus/cosmos/tree/master/code/design_pattern/src/oop_patterns/observer_java/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [observer pattern](https://github.com/OpenGenus/cosmos/tree/master/code/design_pattern/src/oop_patterns/observer_pattern/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | . | . | -| [policy based design](https://github.com/OpenGenus/cosmos/tree/master/code/design_pattern/src/policy_based_design/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [profunctor](https://github.com/OpenGenus/cosmos/tree/master/code/design_pattern/src/functional_patterns/functional_patterns/scala/src/main/scala/functors/profunctor/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | -| [proxy](https://github.com/OpenGenus/cosmos/tree/master/code/design_pattern/src/oop_patterns/proxy/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [routine](https://github.com/OpenGenus/cosmos/tree/master/code/design_pattern/src/oop_patterns/facade/daily/tasks/morning/routine/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [scala](https://github.com/OpenGenus/cosmos/tree/master/code/design_pattern/src/functional_patterns/functional_patterns/scala/src/main/scala/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | -| [singleton pattern](https://github.com/OpenGenus/cosmos/tree/master/code/design_pattern/src/oop_patterns/singleton_pattern/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | ✔️ | . | -| [soldiers](https://github.com/OpenGenus/cosmos/tree/master/code/design_pattern/src/oop_patterns/adapter/soldiers/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [src](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [tasks](https://github.com/OpenGenus/cosmos/tree/master/code/design_pattern/src/oop_patterns/facade/daily/tasks/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| | 0 | 0 | 0 | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 17 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 4 | 0 | 0 | 0 | 1 | 10 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | - - -# [DIVIDE CONQUER](https://github.com/OpenGenus/cosmos/tree/master/code/divide_conquer) -| DIVIDE CONQUER | Ada | BrainFuck | C | C++ | Clojure | Crisp | Elixir | Elm | Erlang | Fortran | Golang | HTML | Haskell | Java | JavaScript | Julia | Jupyter Notebook | Kotlin | Lua | ML | Nim | Objective-C | PHP | Perl | Processing Development Environment | PureScript | Python | Racket | Reason | Ruby | Rust | Scala | Shell Script | Standard ML | Swift | TypeScript | Visual Basic | Visual C# | Visual F# | -| ----------------------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| [closest pair of points](https://github.com/OpenGenus/cosmos/tree/master/code/divide_conquer/src/closest_pair_of_points/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [factorial](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/factorial/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [inversion count](https://github.com/OpenGenus/cosmos/tree/master/code/divide_conquer/src/inversion_count/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [karatsuba multiplication](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/karatsuba_multiplication/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [maximum contiguous subsequence sum](https://github.com/OpenGenus/cosmos/tree/master/code/divide_conquer/src/maximum_contiguous_subsequence_sum/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [merge sort using divide and conquer](https://github.com/OpenGenus/cosmos/tree/master/code/divide_conquer/src/merge_sort_using_divide_and_conquer/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [quick sort](https://github.com/OpenGenus/cosmos/tree/master/code/divide_conquer/src/quick_sort/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | -| [strassen matrix multiplication](https://github.com/OpenGenus/cosmos/tree/master/code/divide_conquer/src/strassen_matrix_multiplication/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [tournament method to find min max](https://github.com/OpenGenus/cosmos/tree/master/code/divide_conquer/src/tournament_method_to_find_min_max/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [warnock algorithm](https://github.com/OpenGenus/cosmos/tree/master/code/divide_conquer/src/warnock_algorithm/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [x power y](https://github.com/OpenGenus/cosmos/tree/master/code/divide_conquer/src/x_power_y/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| | 0 | 0 | 6 | 6 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 6 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | - - -# [DYNAMIC PROGRAMMING](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming) -| DYNAMIC PROGRAMMING | Ada | BrainFuck | C | C++ | Clojure | Crisp | Elixir | Elm | Erlang | Fortran | Golang | HTML | Haskell | Java | JavaScript | Julia | Jupyter Notebook | Kotlin | Lua | ML | Nim | Objective-C | PHP | Perl | Processing Development Environment | PureScript | Python | Racket | Reason | Ruby | Rust | Scala | Shell Script | Standard ML | Swift | TypeScript | Visual Basic | Visual C# | Visual F# | -| ----------------------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| [array median](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/array_median/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | -| [binomial coefficient](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/binomial_coefficient/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [boolean parenthesization](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/boolean_parenthesization/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | . | -| [box stacking](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/box_stacking/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [coin change](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/coin_change/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [digit dp](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/digit_dp/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [edit distance](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/edit_distance/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | . | . | -| [egg dropping puzzle](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/egg_dropping_puzzle/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [factorial](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/factorial/) | . | . | ✔️ | . | . | . | ✔️ | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | -| [fibonacci](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/fibonacci/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [knapsack](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/knapsack/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [largest sum contiguous subarray](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/largest_sum_contiguous_subarray/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [longest bitonic sequence](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/longest_bitonic_sequence/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [longest common increasing subsequence](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/longest_common_increasing_subsequence/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [longest common subsequence](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/longest_common_subsequence/) | . | . | . | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [longest common substring](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/longest_common_substring/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [longest increasing subsequence](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/longest_increasing_subsequence/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [longest palindromic sequence](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/longest_palindromic_sequence/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [longest palindromic substring](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/longest_palindromic_substring/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [longest repeating subsequence](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/longest_repeating_subsequence/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [matrix chain multiplication](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/matrix_chain_multiplication/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [maximum sum increasing subsequence](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/maximum_sum_increasing_subsequence/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [maximum sum sub matrix](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/maximum_sum_sub_matrix/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [maximum weight independent set of path graph](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/maximum_weight_independent_set_of_path_graph/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [min cost path](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/min_cost_path/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [minimum insertion palindrome](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/minimum_insertion_palindrome/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [no consec ones](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/no_consec_ones/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [numeric keypad problem](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/numeric_keypad_problem/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [optimal binary search tree](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/optimal_binary_search_tree/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [palindrome partition](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/palindrome_partition/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [rod cutting](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/rod_cutting/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [shortest common supersequence](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/shortest_common_supersequence/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [subset sum](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/subset_sum/) | . | . | . | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [tiling problem](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/tiling_problem/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [weighted job scheduling](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/weighted_job_scheduling/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| | 0 | 0 | 17 | 31 | 0 | 0 | 1 | 0 | 0 | 0 | 9 | 0 | 4 | 19 | 7 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 24 | 0 | 0 | 1 | 3 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | - - -# [FILTERS](https://github.com/OpenGenus/cosmos/tree/master/code/filters) -| FILTERS | Ada | BrainFuck | C | C++ | Clojure | Crisp | Elixir | Elm | Erlang | Fortran | Golang | HTML | Haskell | Java | JavaScript | Julia | Jupyter Notebook | Kotlin | Lua | ML | Nim | Objective-C | PHP | Perl | Processing Development Environment | PureScript | Python | Racket | Reason | Ruby | Rust | Scala | Shell Script | Standard ML | Swift | TypeScript | Visual Basic | Visual C# | Visual F# | -| ----------------------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| [gaussian filter](https://github.com/OpenGenus/cosmos/tree/master/code/filters/src/gaussian_filter/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [median filter](https://github.com/OpenGenus/cosmos/tree/master/code/filters/src/median_filter/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - - -# [GAME THEORY](https://github.com/OpenGenus/cosmos/tree/master/code/game_theory) -| GAME THEORY | Ada | BrainFuck | C | C++ | Clojure | Crisp | Elixir | Elm | Erlang | Fortran | Golang | HTML | Haskell | Java | JavaScript | Julia | Jupyter Notebook | Kotlin | Lua | ML | Nim | Objective-C | PHP | Perl | Processing Development Environment | PureScript | Python | Racket | Reason | Ruby | Rust | Scala | Shell Script | Standard ML | Swift | TypeScript | Visual Basic | Visual C# | Visual F# | -| ----------------------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| [game of nim next best move](https://github.com/OpenGenus/cosmos/tree/master/code/game_theory/src/game_of_nim_next_best_move/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [game of nim win loss prediction](https://github.com/OpenGenus/cosmos/tree/master/code/game_theory/src/game_of_nim_win_loss_prediction/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [grundy numbers kayle](https://github.com/OpenGenus/cosmos/tree/master/code/game_theory/src/grundy_numbers_kayle/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - - -# [GRAPH ALGORITHMS](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms) -| GRAPH ALGORITHMS | Ada | BrainFuck | C | C++ | Clojure | Crisp | Elixir | Elm | Erlang | Fortran | Golang | HTML | Haskell | Java | JavaScript | Julia | Jupyter Notebook | Kotlin | Lua | ML | Nim | Objective-C | PHP | Perl | Processing Development Environment | PureScript | Python | Racket | Reason | Ruby | Rust | Scala | Shell Script | Standard ML | Swift | TypeScript | Visual Basic | Visual C# | Visual F# | -| ----------------------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| [adjacency lists in c](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/adjacency_lists_graph_representation/adjacency_lists_in_c/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [adjacency matrix c](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/data_structures/adjacency_matrix_c/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [astar algorithm](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/astar_algorithm/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [bellman ford algorithm](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/bellman_ford_algorithm/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [biconnected components](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/biconnected_components/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [bipartite check](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/bipartite_check/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [bipartite checking](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/bipartite_checking/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [boruvka minimum spanning tree](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/boruvka_minimum_spanning_tree/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [breadth first search](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/breadth_first_search/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | ✔️ | . | . | . | . | -| [bridge tree](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/bridge_tree/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [bridges in graph](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/bridges_in_graph/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [bron kerbosch algorithm](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/bron_kerbosch_algorithm/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [centroid decomposition](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/centroid_decomposition/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [connected components](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/connected_components/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [count of ways n](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/count_of_ways_n/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [cut vertices](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/cut_vertices/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [cycle directed graph](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/cycle_directed_graph/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [cycle undirected graph](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/cycle_undirected_graph/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [data structures](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/data_structures/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [depth first search](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/depth_first_search/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | . | . | . | -| [dijkstra shortest path](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/dijkstra_shortest_path/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [dinic maximum flow](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/dinic_maximum_flow/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [eulerian path](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/eulerian_path/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [floyd warshall algorithm](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/floyd_warshall_algorithm/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [ford fulkerson maximum flow](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/ford_fulkerson_maximum_flow/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [graph coloring](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/graph_coloring/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [hamiltonian cycle](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/hamiltonian_cycle/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [hamiltonian path](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/hamiltonian_path/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [johnson algorithm shortest path](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/johnson_algorithm_shortest_path/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [karger minimum cut](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/karger_minimum_cut/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [kruskal minimum spanning tree](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/kruskal_minimum_spanning_tree/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [kuhn maximum matching](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/kuhn_maximum_matching/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [kuhn munkres algorithm](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/kuhn_munkres_algorithm/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [left view binary tree](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/left_view_binary_tree/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [longest path directed acyclic graph](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/longest_path_directed_acyclic_graph/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [matrix transformation](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/matrix_transformation/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | -| [maximum bipartite matching](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/maximum_bipartite_matching/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [postorder from inorder and preorder](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/postorder_from_inorder_and_preorder/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [prim minimum spanning tree](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/prim_minimum_spanning_tree/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [push relabel](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/push_relabel/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [steiner tree](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/steiner_tree/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [strongly connected components](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/strongly_connected_components/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [tarjan algorithm strongly connected components](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/tarjan_algorithm_strongly_connected_components/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [topological sort](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/topological_sort/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | ✔️ | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [transitive closure graph](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/transitive_closure_graph/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [travelling salesman mst](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/travelling_salesman_mst/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| | 0 | 0 | 14 | 32 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 19 | 4 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 21 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | - - -# [GREEDY ALGORITHMS](https://github.com/OpenGenus/cosmos/tree/master/code/greedy_algorithms) -| GREEDY ALGORITHMS | Ada | BrainFuck | C | C++ | Clojure | Crisp | Elixir | Elm | Erlang | Fortran | Golang | HTML | Haskell | Java | JavaScript | Julia | Jupyter Notebook | Kotlin | Lua | ML | Nim | Objective-C | PHP | Perl | Processing Development Environment | PureScript | Python | Racket | Reason | Ruby | Rust | Scala | Shell Script | Standard ML | Swift | TypeScript | Visual Basic | Visual C# | Visual F# | -| ----------------------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| [activity selection](https://github.com/OpenGenus/cosmos/tree/master/code/greedy_algorithms/src/activity_selection/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [dijkstra shortest path](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/dijkstra_shortest_path/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [egyptian fraction](https://github.com/OpenGenus/cosmos/tree/master/code/greedy_algorithms/src/egyptian_fraction/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [fractional knapsack](https://github.com/OpenGenus/cosmos/tree/master/code/greedy_algorithms/src/fractional_knapsack/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | ✔️ | . | -| [hillclimber](https://github.com/OpenGenus/cosmos/tree/master/code/greedy_algorithms/src/hillclimber/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [huffman coding](https://github.com/OpenGenus/cosmos/tree/master/code/greedy_algorithms/src/huffman_coding/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [job sequencing](https://github.com/OpenGenus/cosmos/tree/master/code/greedy_algorithms/src/job_sequencing/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [k centers](https://github.com/OpenGenus/cosmos/tree/master/code/greedy_algorithms/src/k_centers/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [kruskal minimum spanning tree](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/kruskal_minimum_spanning_tree/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [minimum coins](https://github.com/OpenGenus/cosmos/tree/master/code/greedy_algorithms/src/minimum_coins/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | ✔️ | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [prim minimum spanning tree](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/prim_minimum_spanning_tree/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [warshall](https://github.com/OpenGenus/cosmos/tree/master/code/greedy_algorithms/src/warshall/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| | 0 | 0 | 9 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 2 | 5 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 10 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | - - -# [LANGUAGE](https://github.com/OpenGenus/cosmos/tree/master/code/language) -| LANGUAGE | Ada | BrainFuck | C | C++ | Clojure | Crisp | Elixir | Elm | Erlang | Fortran | Golang | HTML | Haskell | Java | JavaScript | Julia | Jupyter Notebook | Kotlin | Lua | ML | Nim | Objective-C | PHP | Perl | Processing Development Environment | PureScript | Python | Racket | Reason | Ruby | Rust | Scala | Shell Script | Standard ML | Swift | TypeScript | Visual Basic | Visual C# | Visual F# | -| ----------------------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| [loop](https://github.com/OpenGenus/cosmos/tree/master/code/language/c/loop/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - - -# [LANGUAGES](https://github.com/OpenGenus/cosmos/tree/master/code/languages) -| LANGUAGES | Ada | BrainFuck | C | C++ | Clojure | Crisp | Elixir | Elm | Erlang | Fortran | Golang | HTML | Haskell | Java | JavaScript | Julia | Jupyter Notebook | Kotlin | Lua | ML | Nim | Objective-C | PHP | Perl | Processing Development Environment | PureScript | Python | Racket | Reason | Ruby | Rust | Scala | Shell Script | Standard ML | Swift | TypeScript | Visual Basic | Visual C# | Visual F# | -| ----------------------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| [dynamic memory allocation](https://github.com/OpenGenus/cosmos/tree/master/code/languages/c/dynamic_memory_allocation/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [tuple](https://github.com/OpenGenus/cosmos/tree/master/code/languages/python/tuple/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - - -# [MATHEMATICAL ALGORITHMS](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms) -| MATHEMATICAL ALGORITHMS | Ada | BrainFuck | C | C++ | Clojure | Crisp | Elixir | Elm | Erlang | Fortran | Golang | HTML | Haskell | Java | JavaScript | Julia | Jupyter Notebook | Kotlin | Lua | ML | Nim | Objective-C | PHP | Perl | Processing Development Environment | PureScript | Python | Racket | Reason | Ruby | Rust | Scala | Shell Script | Standard ML | Swift | TypeScript | Visual Basic | Visual C# | Visual F# | -| ----------------------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| [2sum](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/2sum/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | -| [add polynomials](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/add_polynomials/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [amicable numbers](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/amicable_numbers/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | -| [armstrong numbers](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/armstrong_numbers/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | -| [automorphic numbers](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/automorphic_numbers/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | ✔️ | ✔️ | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | ✔️ | . | . | ✔️ | . | -| [average stream numbers](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/average_stream_numbers/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [babylonian method](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/babylonian_method/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [binomial coefficient](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/binomial_coefficient/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [catalan number](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/catalan_number/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | ✔️ | . | . | . | . | . | . | . | -| [check is square](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/check_is_square/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | ✔️ | ✔️ | ✔️ | . | . | ✔️ | . | . | ✔️ | . | -| [collatz conjecture sequence](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/collatz_conjecture_sequence/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [convolution](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/convolution/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [coprime numbers](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/coprime_numbers/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | -| [count digits](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/count_digits/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | ✔️ | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | ✔️ | . | . | ✔️ | . | -| [count trailing zeroes](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/count_trailing_zeroes/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | ✔️ | . | . | . | . | . | . | . | -| [delannoy number](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/delannoy_number/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [derangements](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/derangements/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [diophantine](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/diophantine/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [divided differences](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/divided_differences/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [elimination](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/gaussian_elimination/scala/src/main/scala/gaussian/elimination/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | -| [euler totient](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/euler_totient/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [exponentiation by squaring](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/exponentiation_power/exponentiation_by_squaring/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [exponentiation power](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/exponentiation_power/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [factorial](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/factorial/) | . | . | ✔️ | ✔️ | ✔️ | . | ✔️ | . | ✔️ | . | ✔️ | . | ✔️ | ✔️ | ✔️ | . | . | ✔️ | . | . | . | . | ✔️ | ✔️ | . | . | ✔️ | . | . | ✔️ | ✔️ | ✔️ | . | . | ✔️ | . | . | ✔️ | . | -| [fast fourier transform](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/fast_fourier_transform/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [fast inverse sqrt](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/fast_inverse_sqrt/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [fermat primality test](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/primality_tests/fermat_primality_test/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [fermats little theorem](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/fermats_little_theorem/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [fibonacci number](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/fibonacci_number/) | . | . | ✔️ | ✔️ | ✔️ | . | ✔️ | . | ✔️ | . | ✔️ | . | ✔️ | ✔️ | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | ✔️ | ✔️ | ✔️ | . | . | ✔️ | . | . | ✔️ | . | -| [fractals](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/fractals/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [gaussian elimination](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/gaussian_elimination/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [gcd and lcm](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/gcd_and_lcm/) | . | . | ✔️ | ✔️ | . | . | ✔️ | . | ✔️ | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | ✔️ | . | . | . | . | . | ✔️ | . | -| [greatest digit in number](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/greatest_digit_in_number/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | ✔️ | ✔️ | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | -| [hill climbing](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/hill_climbing/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [horner polynomial evaluation](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/horner_polynomial_evaluation/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [integer conversion](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/integer_conversion/) | . | . | . | ✔️ | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [integer to roman](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/integer_to_roman/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [jacobi method](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/jacobi_method/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [karatsuba multiplication](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/karatsuba_multiplication/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [largrange polynomial](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/largrange_polynomial/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [lexicographic string rank](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/lexicographic_string_rank/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [log of factorial](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/log_of_factorial/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [lucas theorem](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/lucas_theorem/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [lucky number](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/lucky_number/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [magic square](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/magic_square/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [miller rabin primality test](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/primality_tests/miller_rabin_primality_test/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [modular inverse](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/modular_inverse/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | . | . | . | -| [multiply polynomial](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/multiply_polynomial/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [newman conway](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/newman_conway/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [newton polynomial](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/newton_polynomial/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [newton raphson method](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/newton_raphson_method/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [next larger number](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/next_larger_number/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [pandigital number](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/pandigital_number/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | -| [pascal triangle](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/pascal_triangle/) | . | . | ✔️ | ✔️ | . | . | ✔️ | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [perfect number](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/perfect_number/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | ✔️ | ✔️ | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | -| [permutation lexicographic order](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/permutation_lexicographic_order/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [poisson sample](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/poisson_sample/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [prime factors](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/prime_factors/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [prime numbers of n](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/prime_numbers_of_n/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [pythagorean triplet](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/pythagorean_triplet/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [replace 0 with 5](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/replace_0_with_5/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | ✔️ | . | -| [reverse factorial](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/reverse_factorial/) | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | . | . | . | -| [reverse number](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/reverse_number/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | ✔️ | ✔️ | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | ✔️ | . | . | ✔️ | . | -| [russian peasant multiplication](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/russian_peasant_multiplication/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | ✔️ | . | -| [scala](https://github.com/OpenGenus/cosmos/tree/master/code/design_pattern/src/functional_patterns/functional_patterns/scala/src/main/scala/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | -| [segmented sieve of eratosthenes](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/segmented_sieve_of_eratosthenes/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [shuffle array](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/shuffle_array/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | -| [sieve of atkin](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/sieve_of_atkin/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [sieve of eratosthenes](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/sieve_of_eratosthenes/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | ✔️ | ✔️ | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | ✔️ | . | -| [simpsons rule](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/simpsons_rule/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [smallest digit in number](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/smallest_digit_in_number/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | ✔️ | ✔️ | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | -| [solovay strassen primality test](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/primality_tests/solovay_strassen_primality_test/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [square free number](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/square_free_number/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [std](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/std/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [steepest descent](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/steepest_descent/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [structures](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/gaussian_elimination/scala/src/main/scala/structures/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | -| [sum of digits](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/sum_of_digits/) | . | . | ✔️ | ✔️ | . | . | ✔️ | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | ✔️ | . | . | ✔️ | . | -| [taxicab numbers](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/taxicab_numbers/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [tower of hanoi](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/tower_of_hanoi/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | ✔️ | ✔️ | ✔️ | . | . | . | . | ✔️ | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | -| [tribonacci numbers](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/tribonacci_numbers/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | . | . | -| [tridiagonal matrix](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/tridiagonal_matrix/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| | 0 | 0 | 48 | 61 | 2 | 0 | 5 | 0 | 3 | 0 | 27 | 0 | 10 | 46 | 29 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 15 | 1 | 0 | 0 | 48 | 0 | 0 | 19 | 11 | 10 | 0 | 0 | 7 | 0 | 0 | 16 | 0 | - - -# [NETWORKING](https://github.com/OpenGenus/cosmos/tree/master/code/networking) -| NETWORKING | Ada | BrainFuck | C | C++ | Clojure | Crisp | Elixir | Elm | Erlang | Fortran | Golang | HTML | Haskell | Java | JavaScript | Julia | Jupyter Notebook | Kotlin | Lua | ML | Nim | Objective-C | PHP | Perl | Processing Development Environment | PureScript | Python | Racket | Reason | Ruby | Rust | Scala | Shell Script | Standard ML | Swift | TypeScript | Visual Basic | Visual C# | Visual F# | -| ----------------------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| [determine endianess](https://github.com/OpenGenus/cosmos/tree/master/code/networking/src/determine_endianess/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [packetsniffer](https://github.com/OpenGenus/cosmos/tree/master/code/networking/src/packetsniffer/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [validate ip](https://github.com/OpenGenus/cosmos/tree/master/code/networking/src/validate_ip/) | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | -| | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 2 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | - - -# [NUMERICAL ANALYSIS](https://github.com/OpenGenus/cosmos/tree/master/code/numerical_analysis) -| NUMERICAL ANALYSIS | Ada | BrainFuck | C | C++ | Clojure | Crisp | Elixir | Elm | Erlang | Fortran | Golang | HTML | Haskell | Java | JavaScript | Julia | Jupyter Notebook | Kotlin | Lua | ML | Nim | Objective-C | PHP | Perl | Processing Development Environment | PureScript | Python | Racket | Reason | Ruby | Rust | Scala | Shell Script | Standard ML | Swift | TypeScript | Visual Basic | Visual C# | Visual F# | -| ----------------------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| [src](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - - -# [ONLINE CHALLENGES](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges) -| ONLINE CHALLENGES | Ada | BrainFuck | C | C++ | Clojure | Crisp | Elixir | Elm | Erlang | Fortran | Golang | HTML | Haskell | Java | JavaScript | Julia | Jupyter Notebook | Kotlin | Lua | ML | Nim | Objective-C | PHP | Perl | Processing Development Environment | PureScript | Python | Racket | Reason | Ruby | Rust | Scala | Shell Script | Standard ML | Swift | TypeScript | Visual Basic | Visual C# | Visual F# | -| ----------------------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| [3D aurface area](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/hackerrank/3D_aurface_area/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [CHDIGER](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/codechef/CHDIGER/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [CHNUM](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/codechef/CHNUM/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [JAIN](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/codechef/JAIN/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [NBONACCI](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/codechef/NBONACCI/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [almost sorted](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/hackerrank/almost_sorted/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [array manipulation](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/hackerrank/array_manipulation/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [bigger is greater](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/hackerrank/bigger_is_greater/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [complement dna strand](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/rosalind/complement_dna_strand/) | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | -| [encryption](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/hackerrank/encryption/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [problem 001](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/project_euler/problem_001/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | . | . | -| [problem 002](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/project_euler/problem_002/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [problem 003](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/project_euler/problem_003/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [problem 004](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/project_euler/problem_004/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [problem 005](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/project_euler/problem_005/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [problem 006](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/project_euler/problem_006/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [problem 007](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/project_euler/problem_007/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [problem 008](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/project_euler/problem_008/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [problem 009](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/project_euler/problem_009/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [problem 010](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/project_euler/problem_010/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [problem 012](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/project_euler/problem_012/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [problem 013](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/project_euler/problem_013/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [problem 014](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/project_euler/problem_014/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [problem 016](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/project_euler/problem_016/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [problem 018](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/project_euler/problem_018/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [problem 019](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/project_euler/problem_019/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [problem 020](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/project_euler/problem_020/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [problem 021](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/project_euler/problem_021/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [problem 022](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/project_euler/problem_022/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [problem 024](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/project_euler/problem_024/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [problem 025](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/project_euler/problem_025/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [problem 026](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/project_euler/problem_026/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [problem 028](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/project_euler/problem_028/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [problem 034](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/project_euler/problem_034/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [problem 036](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/project_euler/problem_036/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [problem 037](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/project_euler/problem_037/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [problem 040](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/project_euler/problem_040/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [problem 067](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/project_euler/problem_067/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [problem 102](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/project_euler/problem_102/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [the maximum subarray](https://github.com/OpenGenus/cosmos/tree/master/code/online_challenges/src/hackerrank/the_maximum_subarray/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| | 0 | 0 | 4 | 29 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 8 | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 23 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - - -# [OPERATING SYSTEM](https://github.com/OpenGenus/cosmos/tree/master/code/operating_system) -| OPERATING SYSTEM | Ada | BrainFuck | C | C++ | Clojure | Crisp | Elixir | Elm | Erlang | Fortran | Golang | HTML | Haskell | Java | JavaScript | Julia | Jupyter Notebook | Kotlin | Lua | ML | Nim | Objective-C | PHP | Perl | Processing Development Environment | PureScript | Python | Racket | Reason | Ruby | Rust | Scala | Shell Script | Standard ML | Swift | TypeScript | Visual Basic | Visual C# | Visual F# | -| ----------------------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| [bankers algorithm](https://github.com/OpenGenus/cosmos/tree/master/code/operating_system/src/deadlocks/bankers_algorithm/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [c](https://github.com/OpenGenus/cosmos/tree/master/code/string_algorithms/src/finite_automata/c/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [dining philosophers](https://github.com/OpenGenus/cosmos/tree/master/code/operating_system/src/concurrency/dining_philosophers/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [first come first serve](https://github.com/OpenGenus/cosmos/tree/master/code/operating_system/src/scheduling/first_come_first_serve/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | ✔️ | . | -| [least recently used](https://github.com/OpenGenus/cosmos/tree/master/code/operating_system/src/memory_management/least_recently_used/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [memory mapping](https://github.com/OpenGenus/cosmos/tree/master/code/operating_system/src/memory_management/memory_mapping/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [monitors system v](https://github.com/OpenGenus/cosmos/tree/master/code/operating_system/src/concurrency/monitors/monitors_system_v/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [multi level feedback queue scheduling](https://github.com/OpenGenus/cosmos/tree/master/code/operating_system/src/scheduling/multi_level_feedback_queue_scheduling/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | -| [peterson algorithm in c](https://github.com/OpenGenus/cosmos/tree/master/code/operating_system/src/concurrency/peterson_algorithm_for_mutual_exclusion/peterson_algorithm_in_c/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [processCreation](https://github.com/OpenGenus/cosmos/tree/master/code/operating_system/src/processCreation/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [producer consumer](https://github.com/OpenGenus/cosmos/tree/master/code/operating_system/src/concurrency/producer_consumer/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [readers writers](https://github.com/OpenGenus/cosmos/tree/master/code/operating_system/src/concurrency/readers_writers/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [round robin c](https://github.com/OpenGenus/cosmos/tree/master/code/operating_system/src/scheduling/round_robin_scheduling/round_robin_c/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [round robin scheduling](https://github.com/OpenGenus/cosmos/tree/master/code/operating_system/src/scheduling/round_robin_scheduling/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [shortest seek time first](https://github.com/OpenGenus/cosmos/tree/master/code/operating_system/src/scheduling/shortest_seek_time_first/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [smallest remaining time first](https://github.com/OpenGenus/cosmos/tree/master/code/operating_system/src/scheduling/smallest_remaining_time_first/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| | 0 | 0 | 10 | 6 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | - - -# [RANDOMIZED ALGORITHMS](https://github.com/OpenGenus/cosmos/tree/master/code/randomized_algorithms) -| RANDOMIZED ALGORITHMS | Ada | BrainFuck | C | C++ | Clojure | Crisp | Elixir | Elm | Erlang | Fortran | Golang | HTML | Haskell | Java | JavaScript | Julia | Jupyter Notebook | Kotlin | Lua | ML | Nim | Objective-C | PHP | Perl | Processing Development Environment | PureScript | Python | Racket | Reason | Ruby | Rust | Scala | Shell Script | Standard ML | Swift | TypeScript | Visual Basic | Visual C# | Visual F# | -| ----------------------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| [birthday paradox](https://github.com/OpenGenus/cosmos/tree/master/code/randomized_algorithms/src/birthday_paradox/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [karger minimum cut algorithm](https://github.com/OpenGenus/cosmos/tree/master/code/randomized_algorithms/src/karger_minimum_cut_algorithm/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [kth smallest element algorithm](https://github.com/OpenGenus/cosmos/tree/master/code/randomized_algorithms/src/kth_smallest_element_algorithm/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [random from stream](https://github.com/OpenGenus/cosmos/tree/master/code/randomized_algorithms/src/random_from_stream/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [randomized quick sort](https://github.com/OpenGenus/cosmos/tree/master/code/randomized_algorithms/src/randomized_quick_sort/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [reservoir sampling](https://github.com/OpenGenus/cosmos/tree/master/code/randomized_algorithms/src/reservoir_sampling/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | -| [shuffle an array](https://github.com/OpenGenus/cosmos/tree/master/code/randomized_algorithms/src/shuffle_an_array/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | -| | 0 | 0 | 2 | 6 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 2 | 0 | 0 | 1 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - - -# [SEARCH](https://github.com/OpenGenus/cosmos/tree/master/code/search) -| SEARCH | Ada | BrainFuck | C | C++ | Clojure | Crisp | Elixir | Elm | Erlang | Fortran | Golang | HTML | Haskell | Java | JavaScript | Julia | Jupyter Notebook | Kotlin | Lua | ML | Nim | Objective-C | PHP | Perl | Processing Development Environment | PureScript | Python | Racket | Reason | Ruby | Rust | Scala | Shell Script | Standard ML | Swift | TypeScript | Visual Basic | Visual C# | Visual F# | -| ----------------------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| [binary search](https://github.com/OpenGenus/cosmos/tree/master/code/search/src/binary_search/) | . | . | ✔️ | ✔️ | . | . | ✔️ | . | . | . | ✔️ | . | ✔️ | ✔️ | ✔️ | . | . | ✔️ | . | . | . | . | ✔️ | . | . | . | ✔️ | ✔️ | . | ✔️ | ✔️ | ✔️ | ✔️ | . | ✔️ | . | . | ✔️ | . | -| [exponential search](https://github.com/OpenGenus/cosmos/tree/master/code/search/src/exponential_search/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | -| [fibonacci search](https://github.com/OpenGenus/cosmos/tree/master/code/search/src/fibonacci_search/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | . | -| [fuzzy search](https://github.com/OpenGenus/cosmos/tree/master/code/search/src/fuzzy_search/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [interpolation search](https://github.com/OpenGenus/cosmos/tree/master/code/search/src/interpolation_search/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [jump search](https://github.com/OpenGenus/cosmos/tree/master/code/search/src/jump_search/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | -| [linear search](https://github.com/OpenGenus/cosmos/tree/master/code/search/src/linear_search/) | . | . | ✔️ | ✔️ | ✔️ | . | . | . | . | . | ✔️ | . | ✔️ | ✔️ | ✔️ | . | . | ✔️ | . | ✔️ | ✔️ | . | ✔️ | . | . | . | ✔️ | . | ✔️ | ✔️ | ✔️ | ✔️ | . | . | ✔️ | . | . | ✔️ | . | -| [ternary search](https://github.com/OpenGenus/cosmos/tree/master/code/search/src/ternary_search/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | ✔️ | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | . | . | -| | 0 | 0 | 7 | 7 | 1 | 0 | 1 | 0 | 0 | 0 | 6 | 0 | 2 | 6 | 8 | 0 | 0 | 3 | 0 | 1 | 1 | 0 | 7 | 0 | 0 | 0 | 7 | 1 | 1 | 3 | 5 | 2 | 1 | 0 | 4 | 0 | 0 | 2 | 0 | - - -# [SELECTION ALGORITHMS](https://github.com/OpenGenus/cosmos/tree/master/code/selection_algorithms) -| SELECTION ALGORITHMS | Ada | BrainFuck | C | C++ | Clojure | Crisp | Elixir | Elm | Erlang | Fortran | Golang | HTML | Haskell | Java | JavaScript | Julia | Jupyter Notebook | Kotlin | Lua | ML | Nim | Objective-C | PHP | Perl | Processing Development Environment | PureScript | Python | Racket | Reason | Ruby | Rust | Scala | Shell Script | Standard ML | Swift | TypeScript | Visual Basic | Visual C# | Visual F# | -| ----------------------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| [median of medians](https://github.com/OpenGenus/cosmos/tree/master/code/selection_algorithms/src/median_of_medians/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [src](https://github.com/OpenGenus/cosmos/tree/master/code/artificial_intelligence/src/) | . | . | . | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | . | -| | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | - - -# [SORTING](https://github.com/OpenGenus/cosmos/tree/master/code/sorting) -| SORTING | Ada | BrainFuck | C | C++ | Clojure | Crisp | Elixir | Elm | Erlang | Fortran | Golang | HTML | Haskell | Java | JavaScript | Julia | Jupyter Notebook | Kotlin | Lua | ML | Nim | Objective-C | PHP | Perl | Processing Development Environment | PureScript | Python | Racket | Reason | Ruby | Rust | Scala | Shell Script | Standard ML | Swift | TypeScript | Visual Basic | Visual C# | Visual F# | -| ----------------------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| [bead sort](https://github.com/OpenGenus/cosmos/tree/master/code/sorting/src/bead_sort/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | -| [bogo sort](https://github.com/OpenGenus/cosmos/tree/master/code/sorting/src/bogo_sort/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | ✔️ | . | . | ✔️ | . | . | ✔️ | . | . | . | . | ✔️ | . | . | . | ✔️ | -| [bubble sort](https://github.com/OpenGenus/cosmos/tree/master/code/sorting/src/bubble_sort/) | . | . | ✔️ | ✔️ | . | . | ✔️ | ✔️ | . | ✔️ | ✔️ | . | ✔️ | ✔️ | ✔️ | ✔️ | . | ✔️ | . | . | . | ✔️ | ✔️ | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | ✔️ | ✔️ | ✔️ | ✔️ | . | ✔️ | . | -| [bucket sort](https://github.com/OpenGenus/cosmos/tree/master/code/sorting/src/bucket_sort/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | ✔️ | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | ✔️ | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | ✔️ | . | . | ✔️ | . | -| [circle sort](https://github.com/OpenGenus/cosmos/tree/master/code/sorting/src/circle_sort/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | -| [comb sort](https://github.com/OpenGenus/cosmos/tree/master/code/sorting/src/comb_sort/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | . | -| [counting sort](https://github.com/OpenGenus/cosmos/tree/master/code/sorting/src/counting_sort/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | -| [cycle sort](https://github.com/OpenGenus/cosmos/tree/master/code/sorting/src/cycle_sort/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | -| [flash sort](https://github.com/OpenGenus/cosmos/tree/master/code/sorting/src/flash_sort/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | -| [gnome sort](https://github.com/OpenGenus/cosmos/tree/master/code/sorting/src/gnome_sort/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | . | -| [heap sort](https://github.com/OpenGenus/cosmos/tree/master/code/sorting/src/heap_sort/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | ✔️ | . | . | ✔️ | . | . | ✔️ | . | -| [insertion sort](https://github.com/OpenGenus/cosmos/tree/master/code/sorting/src/insertion_sort/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | ✔️ | ✔️ | ✔️ | . | . | ✔️ | . | ✔️ | . | ✔️ | ✔️ | . | . | . | ✔️ | . | ✔️ | ✔️ | ✔️ | . | ✔️ | . | ✔️ | . | . | ✔️ | . | -| [intro sort](https://github.com/OpenGenus/cosmos/tree/master/code/sorting/src/intro_sort/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | -| [median sort](https://github.com/OpenGenus/cosmos/tree/master/code/sorting/src/median_sort/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | -| [merge sort](https://github.com/OpenGenus/cosmos/tree/master/code/sorting/src/merge_sort/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | ✔️ | ✔️ | ✔️ | . | . | ✔️ | . | . | . | ✔️ | ✔️ | ✔️ | . | . | ✔️ | . | . | ✔️ | ✔️ | ✔️ | ✔️ | . | ✔️ | ✔️ | . | ✔️ | ✔️ | -| [pigeonhole sort](https://github.com/OpenGenus/cosmos/tree/master/code/sorting/src/pigeonhole_sort/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | ✔️ | . | . | . | ✔️ | . | . | . | . | ✔️ | . | . | ✔️ | . | . | ✔️ | . | -| [quick sort](https://github.com/OpenGenus/cosmos/tree/master/code/divide_conquer/src/quick_sort/) | . | . | ✔️ | ✔️ | . | . | . | ✔️ | . | . | ✔️ | . | ✔️ | ✔️ | ✔️ | . | . | . | ✔️ | ✔️ | . | ✔️ | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | ✔️ | ✔️ | . | ✔️ | ✔️ | . | ✔️ | . | -| [radix sort](https://github.com/OpenGenus/cosmos/tree/master/code/sorting/src/radix_sort/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | ✔️ | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | . | . | -| [selection sort](https://github.com/OpenGenus/cosmos/tree/master/code/sorting/src/selection_sort/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | ✔️ | ✔️ | ✔️ | . | . | ✔️ | . | . | . | ✔️ | ✔️ | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | ✔️ | . | ✔️ | . | ✔️ | ✔️ | . | -| [shaker sort](https://github.com/OpenGenus/cosmos/tree/master/code/sorting/src/shaker_sort/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | ✔️ | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | ✔️ | . | . | ✔️ | . | -| [shell sort](https://github.com/OpenGenus/cosmos/tree/master/code/sorting/src/shell_sort/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | . | -| [sleep sort](https://github.com/OpenGenus/cosmos/tree/master/code/sorting/src/sleep_sort/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | ✔️ | . | . | . | . | . | ✔️ | ✔️ | . | . | . | ✔️ | . | . | ✔️ | . | ✔️ | ✔️ | . | ✔️ | . | . | ✔️ | . | -| [stooge sort](https://github.com/OpenGenus/cosmos/tree/master/code/sorting/src/stooge_sort/) | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [topological sort](https://github.com/OpenGenus/cosmos/tree/master/code/graph_algorithms/src/topological_sort/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [tree sort](https://github.com/OpenGenus/cosmos/tree/master/code/sorting/src/tree_sort/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| | 0 | 0 | 23 | 23 | 0 | 0 | 1 | 2 | 0 | 1 | 19 | 0 | 7 | 22 | 22 | 2 | 0 | 5 | 1 | 2 | 0 | 21 | 9 | 2 | 0 | 0 | 23 | 0 | 1 | 9 | 8 | 5 | 6 | 1 | 21 | 3 | 1 | 15 | 2 | - - -# [SQUARE ROOT DECOMPOSITION](https://github.com/OpenGenus/cosmos/tree/master/code/square_root_decomposition) -| SQUARE ROOT DECOMPOSITION | Ada | BrainFuck | C | C++ | Clojure | Crisp | Elixir | Elm | Erlang | Fortran | Golang | HTML | Haskell | Java | JavaScript | Julia | Jupyter Notebook | Kotlin | Lua | ML | Nim | Objective-C | PHP | Perl | Processing Development Environment | PureScript | Python | Racket | Reason | Ruby | Rust | Scala | Shell Script | Standard ML | Swift | TypeScript | Visual Basic | Visual C# | Visual F# | -| ----------------------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| [mos algorithm](https://github.com/OpenGenus/cosmos/tree/master/code/square_root_decomposition/src/mos_algorithm/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - - -# [STRING ALGORITHMS](https://github.com/OpenGenus/cosmos/tree/master/code/string_algorithms) -| STRING ALGORITHMS | Ada | BrainFuck | C | C++ | Clojure | Crisp | Elixir | Elm | Erlang | Fortran | Golang | HTML | Haskell | Java | JavaScript | Julia | Jupyter Notebook | Kotlin | Lua | ML | Nim | Objective-C | PHP | Perl | Processing Development Environment | PureScript | Python | Racket | Reason | Ruby | Rust | Scala | Shell Script | Standard ML | Swift | TypeScript | Visual Basic | Visual C# | Visual F# | -| ----------------------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| [aho corasick algorithm](https://github.com/OpenGenus/cosmos/tree/master/code/string_algorithms/src/aho_corasick_algorithm/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [anagram search](https://github.com/OpenGenus/cosmos/tree/master/code/string_algorithms/src/anagram_search/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | ✔️ | . | . | ✔️ | . | . | ✔️ | . | -| [arithmetic on large numbers](https://github.com/OpenGenus/cosmos/tree/master/code/string_algorithms/src/arithmetic_on_large_numbers/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [boyer moore algorithm](https://github.com/OpenGenus/cosmos/tree/master/code/string_algorithms/src/boyer_moore_algorithm/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [c](https://github.com/OpenGenus/cosmos/tree/master/code/string_algorithms/src/finite_automata/c/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [finite automata](https://github.com/OpenGenus/cosmos/tree/master/code/string_algorithms/src/finite_automata/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | -| [kasai algorithm](https://github.com/OpenGenus/cosmos/tree/master/code/string_algorithms/src/kasai_algorithm/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [kmp algorithm](https://github.com/OpenGenus/cosmos/tree/master/code/string_algorithms/src/kmp_algorithm/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [levenshtein distance](https://github.com/OpenGenus/cosmos/tree/master/code/string_algorithms/src/levenshtein_distance/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [lipogram checker](https://github.com/OpenGenus/cosmos/tree/master/code/string_algorithms/src/lipogram_checker/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | ✔️ | . | -| [longest palindromic substring](https://github.com/OpenGenus/cosmos/tree/master/code/dynamic_programming/src/longest_palindromic_substring/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [manachar algorithm](https://github.com/OpenGenus/cosmos/tree/master/code/string_algorithms/src/manachar_algorithm/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [morse code](https://github.com/OpenGenus/cosmos/tree/master/code/string_algorithms/src/morse_code/) | . | . | . | ✔️ | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [naive pattern search](https://github.com/OpenGenus/cosmos/tree/master/code/string_algorithms/src/naive_pattern_search/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [palindrome checker](https://github.com/OpenGenus/cosmos/tree/master/code/string_algorithms/src/palindrome_checker/) | . | . | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | . | ✔️ | . | ✔️ | . | ✔️ | ✔️ | ✔️ | . | . | ✔️ | ✔️ | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | ✔️ | ✔️ | . | ✔️ | . | ✔️ | . | . | ✔️ | . | -| [palindrome substring](https://github.com/OpenGenus/cosmos/tree/master/code/string_algorithms/src/palindrome_substring/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [pangram checker](https://github.com/OpenGenus/cosmos/tree/master/code/string_algorithms/src/pangram_checker/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | ✔️ | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | ✔️ | . | . | . | . | -| [password strength checker](https://github.com/OpenGenus/cosmos/tree/master/code/string_algorithms/src/password_strength_checker/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | ✔️ | . | -| [rabin karp algorithm](https://github.com/OpenGenus/cosmos/tree/master/code/string_algorithms/src/rabin_karp_algorithm/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [remove dups](https://github.com/OpenGenus/cosmos/tree/master/code/string_algorithms/src/remove_dups/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | . | . | -| [suffix array](https://github.com/OpenGenus/cosmos/tree/master/code/string_algorithms/src/suffix_array/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [trie pattern search](https://github.com/OpenGenus/cosmos/tree/master/code/string_algorithms/src/trie_pattern_search/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [z algorithm](https://github.com/OpenGenus/cosmos/tree/master/code/string_algorithms/src/z_algorithm/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| | 0 | 0 | 8 | 15 | 1 | 1 | 1 | 0 | 1 | 0 | 4 | 0 | 1 | 9 | 7 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 3 | 0 | 0 | 1 | 13 | 0 | 0 | 3 | 3 | 1 | 1 | 0 | 3 | 0 | 0 | 4 | 0 | - - -# [THEORY OF COMPUTATION](https://github.com/OpenGenus/cosmos/tree/master/code/theory_of_computation) -| THEORY OF COMPUTATION | Ada | BrainFuck | C | C++ | Clojure | Crisp | Elixir | Elm | Erlang | Fortran | Golang | HTML | Haskell | Java | JavaScript | Julia | Jupyter Notebook | Kotlin | Lua | ML | Nim | Objective-C | PHP | Perl | Processing Development Environment | PureScript | Python | Racket | Reason | Ruby | Rust | Scala | Shell Script | Standard ML | Swift | TypeScript | Visual Basic | Visual C# | Visual F# | -| ----------------------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| [deterministic finite automaton](https://github.com/OpenGenus/cosmos/tree/master/code/theory_of_computation/src/deterministic_finite_automaton/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [nondeterministic finite atomaton](https://github.com/OpenGenus/cosmos/tree/master/code/theory_of_computation/src/nondeterministic_finite_atomaton/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - - -# [UNCLASSIFIED](https://github.com/OpenGenus/cosmos/tree/master/code/unclassified) -| UNCLASSIFIED | Ada | BrainFuck | C | C++ | Clojure | Crisp | Elixir | Elm | Erlang | Fortran | Golang | HTML | Haskell | Java | JavaScript | Julia | Jupyter Notebook | Kotlin | Lua | ML | Nim | Objective-C | PHP | Perl | Processing Development Environment | PureScript | Python | Racket | Reason | Ruby | Rust | Scala | Shell Script | Standard ML | Swift | TypeScript | Visual Basic | Visual C# | Visual F# | -| ----------------------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| [average](https://github.com/OpenGenus/cosmos/tree/master/code/unclassified/src/average/) | . | . | ✔️ | ✔️ | . | . | ✔️ | . | ✔️ | . | ✔️ | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | ✔️ | ✔️ | ✔️ | ✔️ | . | ✔️ | . | . | ✔️ | . | -| [biggest of n numbers](https://github.com/OpenGenus/cosmos/tree/master/code/unclassified/src/biggest_of_n_numbers/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | ✔️ | . | -| [biggest suffix](https://github.com/OpenGenus/cosmos/tree/master/code/unclassified/src/biggest_suffix/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [fifteen puzzle](https://github.com/OpenGenus/cosmos/tree/master/code/unclassified/src/fifteen_puzzle/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [jaccard similarity](https://github.com/OpenGenus/cosmos/tree/master/code/unclassified/src/jaccard_similarity/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [josephus problem](https://github.com/OpenGenus/cosmos/tree/master/code/unclassified/src/josephus_problem/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [lapindrom checker](https://github.com/OpenGenus/cosmos/tree/master/code/unclassified/src/lapindrom_checker/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [leap year](https://github.com/OpenGenus/cosmos/tree/master/code/unclassified/src/leap_year/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | ✔️ | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | ✔️ | . | -| [magic square](https://github.com/OpenGenus/cosmos/tree/master/code/mathematical_algorithms/src/magic_square/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | . | . | . | -| [majority element](https://github.com/OpenGenus/cosmos/tree/master/code/unclassified/src/majority_element/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [minimum subarray size with degree](https://github.com/OpenGenus/cosmos/tree/master/code/unclassified/src/minimum_subarray_size_with_degree/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [no operator addition](https://github.com/OpenGenus/cosmos/tree/master/code/unclassified/src/no_operator_addition/) | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [optimized fibonacci](https://github.com/OpenGenus/cosmos/tree/master/code/unclassified/src/optimized_fibonacci/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [paint fill](https://github.com/OpenGenus/cosmos/tree/master/code/unclassified/src/paint_fill/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [smallest number to the left](https://github.com/OpenGenus/cosmos/tree/master/code/unclassified/src/smallest_number_to_the_left/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [spiral print](https://github.com/OpenGenus/cosmos/tree/master/code/unclassified/src/spiral_print/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [split list](https://github.com/OpenGenus/cosmos/tree/master/code/unclassified/src/split_list/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | -| [tokenizer](https://github.com/OpenGenus/cosmos/tree/master/code/unclassified/src/tokenizer/) | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [unique number](https://github.com/OpenGenus/cosmos/tree/master/code/unclassified/src/unique_number/) | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | -| [utilities](https://github.com/OpenGenus/cosmos/tree/master/code/unclassified/src/utilities/) | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ✔️ | . | . | . | . | . | . | -| | 0 | 0 | 10 | 12 | 0 | 0 | 1 | 0 | 1 | 0 | 4 | 0 | 0 | 5 | 3 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 2 | 0 | 0 | 0 | 9 | 0 | 0 | 1 | 2 | 1 | 2 | 0 | 2 | 0 | 0 | 3 | 0 | - - -# [UTILITY](https://github.com/OpenGenus/cosmos/tree/master/code/utility) -| UTILITY | Ada | BrainFuck | C | C++ | Clojure | Crisp | Elixir | Elm | Erlang | Fortran | Golang | HTML | Haskell | Java | JavaScript | Julia | Jupyter Notebook | Kotlin | Lua | ML | Nim | Objective-C | PHP | Perl | Processing Development Environment | PureScript | Python | Racket | Reason | Ruby | Rust | Scala | Shell Script | Standard ML | Swift | TypeScript | Visual Basic | Visual C# | Visual F# | -| ----------------------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| [palindrome check](https://github.com/OpenGenus/cosmos/tree/master/code/utility/src/palindrome/palindrome_check/) | . | . | ✔️ | ✔️ | . | . | . | . | . | . | . | . | . | ✔️ | ✔️ | . | . | . | . | . | ✔️ | . | . | . | . | . | ✔️ | . | . | ✔️ | . | . | . | . | . | . | . | ✔️ | . | - - -| TOTALS | 1 | 1 | 247 | 378 | 4 | 1 | 13 | 2 | 6 | 1 | 109 | 2 | 37 | 244 | 121 | 4 | 6 | 16 | 3 | 4 | 3 | 23 | 48 | 4 | 1 | 1 | 309 | 1 | 2 | 59 | 50 | 41 | 16 | 2 | 61 | 5 | 1 | 60 | 3 | -| ------ | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | diff --git a/build/lib/data/stats.txt b/build/lib/data/stats.txt deleted file mode 100755 index 1b6306b..0000000 --- a/build/lib/data/stats.txt +++ /dev/null @@ -1,772 +0,0 @@ -This is the progress list of Cosmos | Updated on: 2019-06-08 - - -ARTIFICIAL INTELLIGENCE Ada BrainFuck C C++ Clojure Crisp Elixir Elm Erlang Fortran Golang HTML Haskell Java JavaScript Julia Jupyter Notebook Kotlin Lua ML Nim Objective-C PHP Perl Processing Development Environment PureScript Python Racket Reason Ruby Rust Scala Shell Script Standard ML Swift TypeScript Visual Basic Visual C# Visual F# ------------------------------------------------ ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- -a star . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -artificial neural network . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -autoenncoder . . . . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . -canny . . x x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -convolutional neural network . . . . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . -dbscan clustering . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -decision tree . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -erode dilate . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -factorization machines . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -gaussian naive bayes . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -gbestPSO . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -hierachical clustering . . . x . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . -houghtransform . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -image processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . -image stitching . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -isodata clustering . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -k means . . . x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . x . . . . -k nearest neighbours . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -lbestPSO . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -linear regression . . . . . . . . . . . . . x x . . . . . . . . . . . x . . . . . . . x . . . . -logistic regression . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -minimax . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -naive bayes . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . x . . . . -neural network . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -neural style transfer . . . . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . -nsm matlab . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . -perceptron . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -prewittfilter . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -principal component analysis . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -q learning . . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . -restricted boltzmann machine . . . . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . -sat . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -sobelfilter . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -src . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -support vector machine . . x . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -tsp . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- - 0 0 3 10 0 0 0 0 0 0 0 0 0 1 2 0 5 0 0 0 0 1 0 0 0 0 19 0 0 0 0 0 1 0 3 0 0 0 0 - - -BACKTRACKING Ada BrainFuck C C++ Clojure Crisp Elixir Elm Erlang Fortran Golang HTML Haskell Java JavaScript Julia Jupyter Notebook Kotlin Lua ML Nim Objective-C PHP Perl Processing Development Environment PureScript Python Racket Reason Ruby Rust Scala Shell Script Standard ML Swift TypeScript Visual Basic Visual C# Visual F# ------------------------------------------------ ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- -algorithm x . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -crossword puzzle . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -knight tour . . x x . . . . . . x . . x . . . . . . . . . . . . x . . . x . . . . . . . . -m coloring problem . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -n queen . . x x . . . . . . x . x x . . . . . . . . . . . . x . . . x . . . . . . . . -number of ways in maze . . x x . . . . . . x . . x . . . . . . . . . . . . . . . . x . . . . . . . . -partitions of number . . . x . . . . . . x . . . . . . . . . . . . . . . . . . . x . . . . . . . . -partitions of set . . . x . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . -permutations of string . . x x . . . . . . x . . . . . . x . . . . . . . . x . . . . . . . . . . . . -powerset . . x . . . . . . . x . . x . . . . . . . . . . . . . . . . . . . . . . . . . -rat in a maze . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -subset sum . . x x . . . . . . x . . x . . . . . . . . . . . . x . . . . . . . . . . . . -sudoku solve . . x x . . . . . . . . . . . . . . . . . . . . . . x . . . x . . . . . . . . - ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- - 0 0 7 10 0 0 0 0 0 0 8 0 1 6 0 0 0 1 0 0 0 0 0 0 0 0 6 0 0 0 5 0 0 0 0 0 0 0 0 - - -BIT MANIPULATION Ada BrainFuck C C++ Clojure Crisp Elixir Elm Erlang Fortran Golang HTML Haskell Java JavaScript Julia Jupyter Notebook Kotlin Lua ML Nim Objective-C PHP Perl Processing Development Environment PureScript Python Racket Reason Ruby Rust Scala Shell Script Standard ML Swift TypeScript Visual Basic Visual C# Visual F# ------------------------------------------------ ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- -addition using bits . . . x . . . . . . . . . . x . . . . . . . . . . . x . . . . . . . . . . x . -bit division . . x . . . . . . . x . . x x . . . . . . . . . . . x . . . . . . . . . . . . -byte swapper . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -convert number binary . . x x . . . . . . . . x x x . . . . . . . x . . . x . . . . . . . . . . . . -count set bits . . x x . . . . . . . . . x x . . . . . . . . . . . x . . . . . . . . . . x . -flip bits . . x x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -hamming distance . . x x . . . . . . x . . x . . . . . . . . . . . . x . . . . . . . . . . . . -invert bit . . x x . . . . . . . . . . x . . . . . . . . . . . x . . . . . . . . . . . . -lonely integer . . x x . . . . . . x . . x x . . . . . . . . . . . x . . . x . . . . . . . . -magic number . . x x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -maximum xor value . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -power of 2 . . x x . . . . . . x . . x x x . . . . . . . . . . x . . . x . . . . . . x . -subset generation . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -sum binary numbers . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -sum equals xor . . x x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -thrice unique number . . . x . . . . . . . . . x x . . . . . . . . . . . x . . . . . . . . . . . . -twice unique number . . x x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -xor swap . . x x . . . . . . x . . . . . . . . . . . . . . . x . . . . . . . . . . . . - ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- - 0 0 13 15 0 0 0 0 0 0 5 0 1 10 8 1 0 0 0 0 0 0 1 0 0 0 13 0 0 0 2 0 0 0 0 0 0 3 0 - - -CELLULAR AUTOMATON Ada BrainFuck C C++ Clojure Crisp Elixir Elm Erlang Fortran Golang HTML Haskell Java JavaScript Julia Jupyter Notebook Kotlin Lua ML Nim Objective-C PHP Perl Processing Development Environment PureScript Python Racket Reason Ruby Rust Scala Shell Script Standard ML Swift TypeScript Visual Basic Visual C# Visual F# ------------------------------------------------ ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- -conways game of life . . x x . . . . . . x . x x . . . . . . . . . . . . x . . x . . . . . . . . . -elementary cellular automata . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -genetic algorithm . . . x . . . . . . x . . x x . . . . . . . . . . . x . . . . . . . . . . . . -langtons ant . . . x . . . . . . . x . x . . . . . . . . . . . . x . . . . . . . . . . . . -von neumann cellular automata . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- - 0 0 2 3 0 0 0 0 0 0 2 1 1 4 1 0 0 0 0 0 0 0 0 0 0 0 3 0 0 1 0 0 0 0 0 0 0 0 0 - - -COMPRESSION Ada BrainFuck C C++ Clojure Crisp Elixir Elm Erlang Fortran Golang HTML Haskell Java JavaScript Julia Jupyter Notebook Kotlin Lua ML Nim Objective-C PHP Perl Processing Development Environment PureScript Python Racket Reason Ruby Rust Scala Shell Script Standard ML Swift TypeScript Visual Basic Visual C# Visual F# ------------------------------------------------ ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- -huffman . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -lempel ziv welch . . . x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . - ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- - 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 - - -COMPUTATIONAL GEOMETRY Ada BrainFuck C C++ Clojure Crisp Elixir Elm Erlang Fortran Golang HTML Haskell Java JavaScript Julia Jupyter Notebook Kotlin Lua ML Nim Objective-C PHP Perl Processing Development Environment PureScript Python Racket Reason Ruby Rust Scala Shell Script Standard ML Swift TypeScript Visual Basic Visual C# Visual F# ------------------------------------------------ ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- -2d line intersection . . x x . . . . . . . . x x x . . . . . . . . . . . x . . x . . . . . . . x . -2d separating axis test . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -area of polygon . . x x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -area of triangle . . x x . . . . . . x . . x x . . . . . . . . . . . x . . . x . . . . . . . . -axis aligned bounding box collision . . . x . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . -bresenham circle . . x x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -bresenham line . . . x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -chans algorithm . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -cohen sutherland lineclip . . x x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -dda line . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -distance between points . . x x . . . . . . x . . x x . . . . . . . . . . . x . . . x . . . . . . . . -graham scan . . . x . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -halfplane intersection . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -jarvis march . . . x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -liangBarskyAlgo . . x x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -quickhull . . . x . . . . . . . . x x . . . . . . . . . . . . . . . . . . . . . . . . . -sphere tetrahedron intersection . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -sutherland hodgeman clipping . . x x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- - 0 0 8 18 0 0 0 0 0 0 3 0 2 7 3 0 0 0 0 0 0 0 0 0 0 0 6 0 0 1 2 0 0 0 0 0 0 1 0 - - -COMPUTER GRAPHICS Ada BrainFuck C C++ Clojure Crisp Elixir Elm Erlang Fortran Golang HTML Haskell Java JavaScript Julia Jupyter Notebook Kotlin Lua ML Nim Objective-C PHP Perl Processing Development Environment PureScript Python Racket Reason Ruby Rust Scala Shell Script Standard ML Swift TypeScript Visual Basic Visual C# Visual F# ------------------------------------------------ ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- -diamond square . . . . . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . - ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- - 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 - - -CRYPTOGRAPHY Ada BrainFuck C C++ Clojure Crisp Elixir Elm Erlang Fortran Golang HTML Haskell Java JavaScript Julia Jupyter Notebook Kotlin Lua ML Nim Objective-C PHP Perl Processing Development Environment PureScript Python Racket Reason Ruby Rust Scala Shell Script Standard ML Swift TypeScript Visual Basic Visual C# Visual F# ------------------------------------------------ ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- -aes 128 . . . x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -aes csharp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x . -affine cipher . . . x . . . . . . . x . x . . . x . . . . . . . . x . . . . . . . . . . . . -atbash cipher . . . x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -autokey cipher . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -baconian cipher . . x x . . . . . . . . . x x . . . . . . . x . . . x . . x . . . . . . . . . -caesar cipher . . x x . . . . . . x . x x x . . . . . . . x . . . x . . x . . . . . . . x . -columnar transposition cipher . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x . -huffman encoding . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -morse cipher . x x x . . . . . . . . . x x . . . x . . . x . . . x . . x . . x . . x . . . -polybius cipher . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -porta cipher . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -rail fence cipher . . . x . . . . . . . . . . . . . . . . . . . . . . x . . x . . . . . . . . . -rot13 cipher . . x x . . . . . . . . . x x . . . . . . . . . . . x . . x . . x . . . . . . -rsa . . x . . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . x . -rsa digital signature . . . . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . -runningkey cipher . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -sha 256 . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -vigenere cipher . . x x . . . . . . x . x x x x . . . . . . x . . . x . . x . . . . . . . . . - ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- - 0 1 7 10 0 0 0 0 0 0 2 1 2 8 5 1 1 1 1 0 0 0 4 0 0 0 15 0 0 6 0 0 2 0 0 1 0 4 0 - - -DATA STRUCTURES Ada BrainFuck C C++ Clojure Crisp Elixir Elm Erlang Fortran Golang HTML Haskell Java JavaScript Julia Jupyter Notebook Kotlin Lua ML Nim Objective-C PHP Perl Processing Development Environment PureScript Python Racket Reason Ruby Rust Scala Shell Script Standard ML Swift TypeScript Visual Basic Visual C# Visual F# ------------------------------------------------ ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- -aa tree . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -abstract stack . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -arraystack . . x x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -avl tree . . x x . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . x . . . . -b tree . . . x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . x . . . . -b tree c . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -bag . . . . . . . . . . . . . x x . . . . . . . . . . . x . . . . . . . . . . . . -balanced expression . . x x . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -binary heap . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -binomial heap . . x x . . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . -bloom filter . . x x . . . . . . x . . x x . . . . . . . . . . . x . . . . x . . x . . . . -bottom view binary tree . . . x . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -c . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -circular buffer . . . x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -circular linked list . . x x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -convert to doubly linked list . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -cpp . . x . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -delete . . x . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -detect cycle . . . x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -diameter . . x x . . . . . . . . x x . . . . . . . . . . . . x . . . . . . . . . . . . -double ended queue . . x x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -doubly linked list . . . x . . . . . . x . . x x . . . . . . . . . . . x . . . . . . . x . . . . -fenwick tree . . x x . . . . . . x . . x . . . . . . . . . x . . x . . . . . . . . . . . . -find . . x . . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -from inorder and postorder . . x x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -from inorder and preorder . . x x . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -hash table . . x x . . . . . . x . . x x . . . . . . . . . . . x . . . x . . . x . . x . -infix to postfix . . x x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -infix to prefix . . . x . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -insertion . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -interval tree . . . x . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -is balance . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -is binary tree . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -is same . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -kd tree . . . x . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -left view . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -leftist tree . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -linked list . . x x . . . . . . . . . x x . . . . . . . . . . . x . . . . . . . . . . . . -make mirror tree . . x x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -max heap . . x x . . . . . . x . . x . . . . . . . . . . . . x . . . . . . . . . . . . -maximum height . . . x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -menu interface . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -merge sorted . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -min heap . . x x . . . . . . . . . x x . . . . . . . . . . . x . . x . . . . x . . . . -minimum height . . x x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -n th node linked list . . x x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -node . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -operations . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -pairing heap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . x -path sum . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -postfix evaluation . . x . . . . . . . . . . . . . . . . . . . . . . . x . . . . . x . . . . . . -prefix to postfix . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -print reverse . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . x . . . . . . . -priority queue . . . . . . . . . . . . . . x . . . . . . . . . . . x . . . . . . . . . . . . -push . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -quad tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . -queue . . x x . . x . . . x . . x x . . . . . . . . . . . x . . x . . . . x . . x . -queue stream . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x . -queue using linked list . . x x . . . . . . . . . x . . . . . . . . . . . . x . . x . . . . . . . . . -queue using stack . . x x . . . . . . . . . x . . . . . . . . . . . . x . . . . . x . . . . . . -red black tree . . x x . . . . . . . . . x . . . . . . . . . . . . . . . x . x . . . . . . . -reverse . . x x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -reverse queue . . . x . . . . . . x . . x . . . . . . . . . . . . x . . . . . . . x . . . . -reverse stack . . x x . . . . . . x . . x . . . . . . . . . . . . x . . . . . . . x . . x . -right threaded . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -right view . . . x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -rope . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -rotate . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -segment tree x . . x . . . . . . x . . x . . . . . . . . . . . . x . . x . x . . . . . . . -serializer . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -singly linked list . . x x . . . . . . x . . x x . . . . . . . . . . . x . . x . . . . x . . x . -skip list . . x x . . . . . . . . . x . . . . . . . . . . . . . . . x . x . . x . . . . -soft heap . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -sort . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -sort stack . . x x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -splay tree . . . x . . . . . . x . . x . . . x . . . . . . . . . . . . . x . . . . . . . -stack . . x x . . x . x . x . . x x . . . . . . . x . . . x . . x x . . . x . . x . -suffix array . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -sum left . . x . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -treap . . . x . . . . . . . . . x . . . x . . . . . . . . . . . . . x . . x . . . . -tree . . x x . . . . . . x . . x x . . . . . . . . . . . x . . x . . . . x . . . . -trie . . x x . . . . . . x . . x x . . . . . . . . . . . x . . x . x . . x . . x . -two three tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . -unclassified . . x x . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -union find . . x x . . . . . . x . . x x . . . . . . . . . . . x . . . . x . . . . . . . -van emde boas tree . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -xor linked list . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -zigzag . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- - 1 0 42 66 0 0 2 0 1 0 15 0 1 41 13 0 0 2 0 0 0 0 1 1 0 0 40 0 0 10 2 11 2 1 16 0 0 7 1 - - -DESIGN PATTERN Ada BrainFuck C C++ Clojure Crisp Elixir Elm Erlang Fortran Golang HTML Haskell Java JavaScript Julia Jupyter Notebook Kotlin Lua ML Nim Objective-C PHP Perl Processing Development Environment PureScript Python Racket Reason Ruby Rust Scala Shell Script Standard ML Swift TypeScript Visual Basic Visual C# Visual F# ------------------------------------------------ ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- -OOP patterns . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -adapter . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -arrow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . -bifunctor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . -builder . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -builder pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x . -comonad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . -contravariant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . -demo . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -facade . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -factory . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -functor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . -gifts . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -gonad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . -gym . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -iterator pattern . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -job . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -monad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . -multifunctor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . -network . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -observer . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -observer java . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -observer pattern . . . x . . . . . . . . . . . . . . . . . . . . . . x . . . x . . . . . . . . -policy based design . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -profunctor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . -proxy . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -routine . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -scala . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . -singleton pattern . . . x . . . . . . . . . x . . . . . . . . x . . . x . . . . . . . . . . x . -soldiers . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -src . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -tasks . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . - ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- - 0 0 0 3 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 1 0 0 0 4 0 0 0 1 10 0 0 0 0 0 2 0 - - -DIVIDE CONQUER Ada BrainFuck C C++ Clojure Crisp Elixir Elm Erlang Fortran Golang HTML Haskell Java JavaScript Julia Jupyter Notebook Kotlin Lua ML Nim Objective-C PHP Perl Processing Development Environment PureScript Python Racket Reason Ruby Rust Scala Shell Script Standard ML Swift TypeScript Visual Basic Visual C# Visual F# ------------------------------------------------ ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- -closest pair of points . . . x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -factorial . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -inversion count . . x x . . . . . . . . . x x . . . . . . . . . . . x . . . . . . . . . . . . -karatsuba multiplication . . . x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -maximum contiguous subsequence sum . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -merge sort using divide and conquer . . x x . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -quick sort . . x x . . . . . . . . x x . . . . . . . . . . . . x . . . x . . . x . . . . -strassen matrix multiplication . . . x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -tournament method to find min max . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -warnock algorithm . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . . . -x power y . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- - 0 0 6 6 0 0 0 0 0 0 0 0 1 4 1 0 0 0 0 0 0 0 0 0 1 0 6 0 0 0 1 0 0 0 1 0 0 0 0 - - -DYNAMIC PROGRAMMING Ada BrainFuck C C++ Clojure Crisp Elixir Elm Erlang Fortran Golang HTML Haskell Java JavaScript Julia Jupyter Notebook Kotlin Lua ML Nim Objective-C PHP Perl Processing Development Environment PureScript Python Racket Reason Ruby Rust Scala Shell Script Standard ML Swift TypeScript Visual Basic Visual C# Visual F# ------------------------------------------------ ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- -array median . . x x . . . . . . . . . x . . . . . . . . x . . . x . . x x . . . . . . . . -binomial coefficient . . x x . . . . . . . . . x x . . . . . . . . . . . x . . . . . . . . . . . . -boolean parenthesization . . x x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . x . . . . -box stacking . . . x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -coin change . . x x . . . . . . x . . x . . . . . . . . . . . . x . . . . . . . . . . . . -digit dp . . . x . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -edit distance . . x x . . . . . . x . x x . . . . . . . . x . . . x . . . x . . . . . . . . -egg dropping puzzle . . x x . . . . . . . . x x . . . . . . . . . . . . x . . . . . . . . . . . . -factorial . . x . . . x . . . x . . x x . . . . . . . . . . . x . . . x x . . . . . . . -fibonacci . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -knapsack . . x x . . . . . . x . . x x . . . . . . . . . . . x . . . . . . . . . . . . -largest sum contiguous subarray . . x x . . . . . . x . x x . . . . . . . . . . . . x . . . . . . . . . . . . -longest bitonic sequence . . x x . . . . . . . . . x x . . . . . . . . . . . x . . . . . . . . . . . . -longest common increasing subsequence . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -longest common subsequence . . . x . . . . . . x . . x . . . . . . . . . . . . x . . . . . . . . . . . . -longest common substring . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -longest increasing subsequence . . x x . . . . . . x . . x x . . . . . . . . . . . x . . . . . . . . . . . . -longest palindromic sequence . . x x . . . . . . . . . . x . . . . . . . . . . . x . . . . . . . . . . . . -longest palindromic substring . . . x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -longest repeating subsequence . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -matrix chain multiplication . . x x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -maximum sum increasing subsequence . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -maximum sum sub matrix . . . x . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -maximum weight independent set of path graph . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -min cost path . . x x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -minimum insertion palindrome . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -no consec ones . . . x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -numeric keypad problem . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -optimal binary search tree . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -palindrome partition . . . x . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . -rod cutting . . x x . . . . . . x . x . . . . . . . . . . . . . x . . . . . . . . . . . . -shortest common supersequence . . . x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -subset sum . . . x . . . . . . x . . x . . . . . . . . . . . . x . . . . . . . . . . . . -tiling problem . . x x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -weighted job scheduling . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- - 0 0 17 31 0 0 1 0 0 0 9 0 4 19 7 0 0 0 0 0 0 0 2 0 0 0 24 0 0 1 3 1 0 0 1 0 0 0 0 - - -FILTERS Ada BrainFuck C C++ Clojure Crisp Elixir Elm Erlang Fortran Golang HTML Haskell Java JavaScript Julia Jupyter Notebook Kotlin Lua ML Nim Objective-C PHP Perl Processing Development Environment PureScript Python Racket Reason Ruby Rust Scala Shell Script Standard ML Swift TypeScript Visual Basic Visual C# Visual F# ------------------------------------------------ ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- -gaussian filter . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -median filter . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . - ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 - - -GAME THEORY Ada BrainFuck C C++ Clojure Crisp Elixir Elm Erlang Fortran Golang HTML Haskell Java JavaScript Julia Jupyter Notebook Kotlin Lua ML Nim Objective-C PHP Perl Processing Development Environment PureScript Python Racket Reason Ruby Rust Scala Shell Script Standard ML Swift TypeScript Visual Basic Visual C# Visual F# ------------------------------------------------ ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- -game of nim next best move . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -game of nim win loss prediction . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -grundy numbers kayle . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . - ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 - - -GRAPH ALGORITHMS Ada BrainFuck C C++ Clojure Crisp Elixir Elm Erlang Fortran Golang HTML Haskell Java JavaScript Julia Jupyter Notebook Kotlin Lua ML Nim Objective-C PHP Perl Processing Development Environment PureScript Python Racket Reason Ruby Rust Scala Shell Script Standard ML Swift TypeScript Visual Basic Visual C# Visual F# ------------------------------------------------ ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- -adjacency lists in c . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -adjacency matrix c . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -astar algorithm . . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . -bellman ford algorithm . . x x . . . . . . . . . x x . . . . . . . x . . . x . . . . . . . . . . . . -biconnected components . . . x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -bipartite check . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -bipartite checking . . . x . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -boruvka minimum spanning tree . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -breadth first search . . x x . . . . . . . . . x . . . . . . . . . . . . x . . x . . . . x . . . . -bridge tree . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -bridges in graph . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -bron kerbosch algorithm . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -centroid decomposition . . . x . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -connected components . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -count of ways n . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -cut vertices . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -cycle directed graph . . x x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -cycle undirected graph . . . x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -data structures . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -depth first search . . x x . . . . . . x . . x . . . x . . . . . . . . x . . x . . . . . . . . . -dijkstra shortest path . . x x . . . . . . . . . x x . . . . . . . . . . . x . . . . . . . . . . . . -dinic maximum flow . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -eulerian path . . . . . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -floyd warshall algorithm . . x x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -ford fulkerson maximum flow . . . x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -graph coloring . . . x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -hamiltonian cycle . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -hamiltonian path . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -johnson algorithm shortest path . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -karger minimum cut . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -kruskal minimum spanning tree . . x x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -kuhn maximum matching . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -kuhn munkres algorithm . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -left view binary tree . . . x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -longest path directed acyclic graph . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -matrix transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . -maximum bipartite matching . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -postorder from inorder and preorder . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -prim minimum spanning tree . . x x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -push relabel . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -steiner tree . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -strongly connected components . . . x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -tarjan algorithm strongly connected components . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -topological sort . . x x . . . . . . . . x x x . . . . . . . . . . . x . . . . . . . . . . . . -transitive closure graph . . . x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -travelling salesman mst . . x x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . - ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- - 0 0 14 32 0 0 0 0 0 0 1 0 1 19 4 0 0 1 0 0 0 0 1 0 0 0 21 0 0 2 0 0 0 0 2 0 0 0 0 - - -GREEDY ALGORITHMS Ada BrainFuck C C++ Clojure Crisp Elixir Elm Erlang Fortran Golang HTML Haskell Java JavaScript Julia Jupyter Notebook Kotlin Lua ML Nim Objective-C PHP Perl Processing Development Environment PureScript Python Racket Reason Ruby Rust Scala Shell Script Standard ML Swift TypeScript Visual Basic Visual C# Visual F# ------------------------------------------------ ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- -activity selection . . x x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -dijkstra shortest path . . x x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -egyptian fraction . . x x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -fractional knapsack . . x x . . . . . . x . . x . . . . . . . . . . . . x . . . . . . . . . . x . -hillclimber . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -huffman coding . . x x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -job sequencing . . . x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -k centers . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -kruskal minimum spanning tree . . x x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -minimum coins . . x x . . . . . . x . x x x . . . . . . . . . . . x . . . . . . . . . . . . -prim minimum spanning tree . . x x . . . . . . . . x . . . . . . . . . . . . . x . . . . . . . . . . . . -warshall . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- - 0 0 9 9 0 0 0 0 0 0 2 0 2 5 1 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 0 1 0 - - -LANGUAGE Ada BrainFuck C C++ Clojure Crisp Elixir Elm Erlang Fortran Golang HTML Haskell Java JavaScript Julia Jupyter Notebook Kotlin Lua ML Nim Objective-C PHP Perl Processing Development Environment PureScript Python Racket Reason Ruby Rust Scala Shell Script Standard ML Swift TypeScript Visual Basic Visual C# Visual F# ------------------------------------------------ ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- -loop . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- - 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - - -LANGUAGES Ada BrainFuck C C++ Clojure Crisp Elixir Elm Erlang Fortran Golang HTML Haskell Java JavaScript Julia Jupyter Notebook Kotlin Lua ML Nim Objective-C PHP Perl Processing Development Environment PureScript Python Racket Reason Ruby Rust Scala Shell Script Standard ML Swift TypeScript Visual Basic Visual C# Visual F# ------------------------------------------------ ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- -dynamic memory allocation . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -tuple . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . - ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- - 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 - - -MATHEMATICAL ALGORITHMS Ada BrainFuck C C++ Clojure Crisp Elixir Elm Erlang Fortran Golang HTML Haskell Java JavaScript Julia Jupyter Notebook Kotlin Lua ML Nim Objective-C PHP Perl Processing Development Environment PureScript Python Racket Reason Ruby Rust Scala Shell Script Standard ML Swift TypeScript Visual Basic Visual C# Visual F# ------------------------------------------------ ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- -2sum . . x x . . . . . . x . . x x . . . . . . . . . . . x . . x x . . . . . . . . -add polynomials . . x x . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . -amicable numbers . . x x . . . . . . x . . x x . . . . . . . . . . . x . . x x . . . . . . x . -armstrong numbers . . x x . . . . . . x . . x x . . . . . . . x . . . x . . x . . . . . . . x . -automorphic numbers . . x x . . . . . . x . x x x . . . . . . . x . . . x . . x . . . . x . . x . -average stream numbers . . x x . . . . . . x . . . . . . . . . . . . . . . x . . . . . . . . . . . . -babylonian method . . x x . . . . . . x . . x x . . . . . . . . . . . x . . . . . . . . . . . . -binomial coefficient . . x x . . . . . . x . . x . . . . . . . . . . . . x . . . . . . . . . . . . -catalan number . . x x . . . . . . . . . x x . . . . . . . . . . . x . . x . x . . . . . . . -check is square . . x x . . . . . . x . . x x . . . . . . . x . . . x . . x x x . . x . . x . -collatz conjecture sequence . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -convolution . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -coprime numbers . . x x . . . . . . x . . x x . . . . . . . . . . . x . . x x . . . . . . x . -count digits . . x x . . . . . . x . x x x . . . . . . . . . . . x . . x . . . . x . . x . -count trailing zeroes . . x x . . . . . . . . . x x . . . . . . . . . . . x . . . . x . . . . . . . -delannoy number . . x x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -derangements . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -diophantine . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -divided differences . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -elimination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . -euler totient . . x x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -exponentiation by squaring . . x x . . . . . . x . . . . . . . . . . . . . . . x . . . . . . . . . . . . -exponentiation power . . x x . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -factorial . . x x x . x . x . x . x x x . . x . . . . x x . . x . . x x x . . x . . x . -fast fourier transform . . x . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -fast inverse sqrt . . . x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -fermat primality test . . x . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -fermats little theorem . . . x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -fibonacci number . . x x x . x . x . x . x x x . . . . . . . x . . . x . . x x x . . x . . x . -fractals . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -gaussian elimination . . . x . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -gcd and lcm . . x x . . x . x . x . . x x . . . . . . . x . . . x . . . . x . . . . . x . -greatest digit in number . . x x . . . . . . . . x x x . . . . . . . x . . . x . . x . . . . . . . x . -hill climbing . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -horner polynomial evaluation . . . x . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -integer conversion . . . x . . . . . . x . . . x . . . . . . . . . . . x . . . . . . . . . . . . -integer to roman . . . x . . . . . . . . . . x . . . . . . . . . . . x . . . . . . . . . . . . -jacobi method . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -karatsuba multiplication . . . x . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -largrange polynomial . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -lexicographic string rank . . x x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -log of factorial . . x x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -lucas theorem . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -lucky number . . x . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -magic square . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -miller rabin primality test . . . x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -modular inverse . . . x . . . . . . . . . x . . . . . . . . . . . . x . . x . . . . . . . . . -multiply polynomial . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -newman conway . . x x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -newton polynomial . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -newton raphson method . . x x . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . -next larger number . . . x . . . . . . . . . x . . . . . . . . x . . . x . . . . . . . . . . . . -pandigital number . . x . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . -pascal triangle . . x x . . x . . . x . . x . . . . . . . . . . . . x . . . . . . . . . . . . -perfect number . . x x . . . . . . . . x x x . . . . . . . x . . . x . . x x . . . . . . . . -permutation lexicographic order . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -poisson sample . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -prime factors . . x x . . . . . . x . . x . . . . . . . . . . . . x . . . . . . . . . . . . -prime numbers of n . . x x . . . . . . . . . . x . . . . . . . . . . . x . . . . . . . . . . . . -pythagorean triplet . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -replace 0 with 5 . . x x . . . . . . x . . x x . . . . . . . . . . . x . . . . . . . . . . x . -reverse factorial . . x . . . . . . . x . . x x . . . . . . . . . . . x . . x . . . . . . . . . -reverse number . . x x . . . . . . x . x x x . . . . . . . x . . . x . . x . . . . x . . x . -russian peasant multiplication . . x x . . . . . . x . . . x . . . . . . . x . . . x . . . x . . . . . . x . -scala . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . -segmented sieve of eratosthenes . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -shuffle array . . x x . . . . . . . . . . x . . . . . . . . . . . . . . x . . . . . . . . . -sieve of atkin . . x x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -sieve of eratosthenes . . x x . . . . . . x . x x x . . . . . . . x . . . x . . . . . . . . . . x . -simpsons rule . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -smallest digit in number . . x x . . . . . . . . x x x . . . . . . . x . . . x . . x . . . . . . . x . -solovay strassen primality test . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -square free number . . x x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -std . . x x . . . . . . x . . . x . . . . . . . . . . . x . . . . . . . . . . . . -steepest descent . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . -sum of digits . . x x . . x . . . x . . x x . . . . . . . x . . . x . . x x . . . x . . x . -taxicab numbers . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -tower of hanoi . . x x . . . . . . x . x x x . . . . x . . . . . . x . . . x x . . . . . . . -tribonacci numbers . . x x . . . . . . x . . x x . . . . . . . . . . . x . . . x . . . . . . . . -tridiagonal matrix . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . - ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- - 0 0 48 61 2 0 5 0 3 0 27 0 10 46 29 0 0 1 0 1 0 0 15 1 0 0 48 0 0 19 11 10 0 0 7 0 0 16 0 - - -NETWORKING Ada BrainFuck C C++ Clojure Crisp Elixir Elm Erlang Fortran Golang HTML Haskell Java JavaScript Julia Jupyter Notebook Kotlin Lua ML Nim Objective-C PHP Perl Processing Development Environment PureScript Python Racket Reason Ruby Rust Scala Shell Script Standard ML Swift TypeScript Visual Basic Visual C# Visual F# ------------------------------------------------ ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- -determine endianess . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -packetsniffer . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -validate ip . . x . . . . . . . x . . . x . . . . . . . x . . . x . . x . . x . . . . . . - ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- - 0 0 2 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 2 0 0 1 0 0 1 0 0 0 0 0 0 - - -NUMERICAL ANALYSIS Ada BrainFuck C C++ Clojure Crisp Elixir Elm Erlang Fortran Golang HTML Haskell Java JavaScript Julia Jupyter Notebook Kotlin Lua ML Nim Objective-C PHP Perl Processing Development Environment PureScript Python Racket Reason Ruby Rust Scala Shell Script Standard ML Swift TypeScript Visual Basic Visual C# Visual F# ------------------------------------------------ ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- -src . . x x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . - ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- - 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 - - -ONLINE CHALLENGES Ada BrainFuck C C++ Clojure Crisp Elixir Elm Erlang Fortran Golang HTML Haskell Java JavaScript Julia Jupyter Notebook Kotlin Lua ML Nim Objective-C PHP Perl Processing Development Environment PureScript Python Racket Reason Ruby Rust Scala Shell Script Standard ML Swift TypeScript Visual Basic Visual C# Visual F# ------------------------------------------------ ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- -3D aurface area . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -CHDIGER . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -CHNUM . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -JAIN . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -NBONACCI . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -almost sorted . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -array manipulation . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -bigger is greater . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -complement dna strand . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . -encryption . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -problem 001 . . x x . . . . . . . . . x x . . . . . . . . . . . x . . . x . . . . . . . . -problem 002 . . x x . . . . . . . . . x x . . . . . . . . . . . x . . . . . . . . . . . . -problem 003 . . x x . . . . . . . . . x x . . . . . . . . . . . x . . . . . . . . . . . . -problem 004 . . . x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -problem 005 . . x x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -problem 006 . . . x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -problem 007 . . . x . . . . . . . . . . x . . . . . . . . . . . x . . . . . . . . . . . . -problem 008 . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -problem 009 . . . x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -problem 010 . . . x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -problem 012 . . . x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -problem 013 . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -problem 014 . . . x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -problem 016 . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -problem 018 . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -problem 019 . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -problem 020 . . . . . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -problem 021 . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -problem 022 . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -problem 024 . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -problem 025 . . . x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -problem 026 . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -problem 028 . . . x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -problem 034 . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -problem 036 . . . x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -problem 037 . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -problem 040 . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -problem 067 . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -problem 102 . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -the maximum subarray . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- - 0 0 4 29 0 0 1 0 0 0 0 0 0 8 4 0 0 0 0 0 0 0 0 0 0 0 23 0 0 0 2 0 0 0 0 0 0 0 0 - - -OPERATING SYSTEM Ada BrainFuck C C++ Clojure Crisp Elixir Elm Erlang Fortran Golang HTML Haskell Java JavaScript Julia Jupyter Notebook Kotlin Lua ML Nim Objective-C PHP Perl Processing Development Environment PureScript Python Racket Reason Ruby Rust Scala Shell Script Standard ML Swift TypeScript Visual Basic Visual C# Visual F# ------------------------------------------------ ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- -bankers algorithm . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -c . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -dining philosophers . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -first come first serve . . . x . . . . . . . . . x . . . . . . . . . . . . x . . . x . . . . . . x . -least recently used . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -memory mapping . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -monitors system v . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -multi level feedback queue scheduling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . -peterson algorithm in c . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -processCreation . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -producer consumer . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -readers writers . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -round robin c . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -round robin scheduling . . . x . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -shortest seek time first . . x x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -smallest remaining time first . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- - 0 0 10 6 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 1 0 - - -RANDOMIZED ALGORITHMS Ada BrainFuck C C++ Clojure Crisp Elixir Elm Erlang Fortran Golang HTML Haskell Java JavaScript Julia Jupyter Notebook Kotlin Lua ML Nim Objective-C PHP Perl Processing Development Environment PureScript Python Racket Reason Ruby Rust Scala Shell Script Standard ML Swift TypeScript Visual Basic Visual C# Visual F# ------------------------------------------------ ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- -birthday paradox . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -karger minimum cut algorithm . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -kth smallest element algorithm . . x x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -random from stream . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -randomized quick sort . . x x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -reservoir sampling . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . -shuffle an array . . . x . . . . . . . . . x x . . . . . . . x . . . x . . x x . . . . . . . . - ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- - 0 0 2 6 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 2 0 0 1 2 0 0 0 0 0 0 0 0 - - -SEARCH Ada BrainFuck C C++ Clojure Crisp Elixir Elm Erlang Fortran Golang HTML Haskell Java JavaScript Julia Jupyter Notebook Kotlin Lua ML Nim Objective-C PHP Perl Processing Development Environment PureScript Python Racket Reason Ruby Rust Scala Shell Script Standard ML Swift TypeScript Visual Basic Visual C# Visual F# ------------------------------------------------ ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- -binary search . . x x . . x . . . x . x x x . . x . . . . x . . . x x . x x x x . x . . x . -exponential search . . x x . . . . . . x . . x x . . . . . . . x . . . x . . x x . . . . . . . . -fibonacci search . . x x . . . . . . . . . . x . . . . . . . . . . . x . . . . . . . x . . . . -fuzzy search . . . . . . . . . . . . . . x . . . . . . . x . . . . . . . . . . . . . . . . -interpolation search . . x x . . . . . . x . . x x . . . . . . . x . . . x . . . . . . . . . . . . -jump search . . x x . . . . . . x . . x x . . . . . . . x . . . x . . . x . . . x . . . . -linear search . . x x x . . . . . x . x x x . . x . x x . x . . . x . x x x x . . x . . x . -ternary search . . x x . . . . . . x . . x x . . x . . . . x . . . x . . . x . . . . . . . . - ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- - 0 0 7 7 1 0 1 0 0 0 6 0 2 6 8 0 0 3 0 1 1 0 7 0 0 0 7 1 1 3 5 2 1 0 4 0 0 2 0 - - -SELECTION ALGORITHMS Ada BrainFuck C C++ Clojure Crisp Elixir Elm Erlang Fortran Golang HTML Haskell Java JavaScript Julia Jupyter Notebook Kotlin Lua ML Nim Objective-C PHP Perl Processing Development Environment PureScript Python Racket Reason Ruby Rust Scala Shell Script Standard ML Swift TypeScript Visual Basic Visual C# Visual F# ------------------------------------------------ ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- -median of medians . . x . . . . . . . . . x . . . . . . . . . . . . . x . . . . . . . . . . . . -src . . . x . . . . . . x . . x . . . x . . . . . . . . x . . . . . . . x . . . . - ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- - 0 0 1 1 0 0 0 0 0 0 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 1 0 0 0 0 - - -SORTING Ada BrainFuck C C++ Clojure Crisp Elixir Elm Erlang Fortran Golang HTML Haskell Java JavaScript Julia Jupyter Notebook Kotlin Lua ML Nim Objective-C PHP Perl Processing Development Environment PureScript Python Racket Reason Ruby Rust Scala Shell Script Standard ML Swift TypeScript Visual Basic Visual C# Visual F# ------------------------------------------------ ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- -bead sort . . x x . . . . . . . . . x x . . . . . . x x . . . x . . . . . . . x . . x . -bogo sort . . x x . . . . . . x . . x x . . . . . . x . x . . x . . x . . . . x . . . x -bubble sort . . x x . . x x . x x . x x x x . x . . . x x . . . x . . x x . x x x x . x . -bucket sort . . x x . . . . . . x . x x x . . . . . . x x . . . x . . x . . . . x . . x . -circle sort . . x x . . . . . . . . . x x . . . . . . x . . . . x . . . . . . . x . . x . -comb sort . . x x . . . . . . x . . x x . . . . . . x . . . . x . . . . . . . x . . . . -counting sort . . x x . . . . . . x . . x x . . . . . . x . . . . x . . . . . . . x . . x . -cycle sort . . x x . . . . . . x . . x x . . . . . . x . . . . x . . . . . . . x . . x . -flash sort . . x . . . . . . . . . . . x . . . . . . x . . . . . . . . . . . . x . . . . -gnome sort . . x x . . . . . . x . . x x . . . . . . x . . . . x . . . . . . . x . . . . -heap sort . . x x . . . . . . x . . x x . . . . . . x . . . . x . . x x x . . x . . x . -insertion sort . . x x . . . . . . x . x x x . . x . x . x x . . . x . x x x . x . x . . x . -intro sort . . . x . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . x . . . . -median sort . . . x . . . . . . . . . . . . . . . . . x . . . . x . . . . . . . x . . x . -merge sort . . x x . . . . . . x . x x x . . x . . . x x x . . x . . x x x x . x x . x x -pigeonhole sort . . x x . . . . . . x . . x x . . . . . . x x . . . x . . . . x . . x . . x . -quick sort . . x x . . . x . . x . x x x . . . x x . x . . . . x . . x x x x . x x . x . -radix sort . . x x . . . . . . x . x x x . . . . . . . . . . . x . . . x . . . . . . . . -selection sort . . x x . . . . . . x . x x x . . x . . . x x . . . x . . x x . x . x . x x . -shaker sort . . x x . . . . . . x . . x x . . . . . . x x . . . x . . . x . . . x . . x . -shell sort . . x x . . . . . . x . . x x . . x . . . x . . . . x . . . . . . . x . . . . -sleep sort . . x x . . . . . . x . . x x x . . . . . x x . . . x . . x . x x . x . . x . -stooge sort . . x . . . . . . . x . . x x . . . . . . . . . . . x . . . . . . . . . . . . -topological sort . . x x . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -tree sort . . x x . . . . . . x . . x x . . . . . . . . . . . x . . . . . . . . . . . . - ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- - 0 0 23 23 0 0 1 2 0 1 19 0 7 22 22 2 0 5 1 2 0 21 9 2 0 0 23 0 1 9 8 5 6 1 21 3 1 15 2 - - -SQUARE ROOT DECOMPOSITION Ada BrainFuck C C++ Clojure Crisp Elixir Elm Erlang Fortran Golang HTML Haskell Java JavaScript Julia Jupyter Notebook Kotlin Lua ML Nim Objective-C PHP Perl Processing Development Environment PureScript Python Racket Reason Ruby Rust Scala Shell Script Standard ML Swift TypeScript Visual Basic Visual C# Visual F# ------------------------------------------------ ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- -mos algorithm . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- - 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - - -STRING ALGORITHMS Ada BrainFuck C C++ Clojure Crisp Elixir Elm Erlang Fortran Golang HTML Haskell Java JavaScript Julia Jupyter Notebook Kotlin Lua ML Nim Objective-C PHP Perl Processing Development Environment PureScript Python Racket Reason Ruby Rust Scala Shell Script Standard ML Swift TypeScript Visual Basic Visual C# Visual F# ------------------------------------------------ ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- -aho corasick algorithm . . . x . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -anagram search . . x x . . . . . . x . . x x . . . . . . . . . . . x . . x . x . . x . . x . -arithmetic on large numbers . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -boyer moore algorithm . . x x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -c . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -finite automata . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . x . . . . . . . . -kasai algorithm . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -kmp algorithm . . . x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -levenshtein distance . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -lipogram checker . . . x . . . . . . . . . . x . . . . . . . . . . . x . . . . . . . . . . x . -longest palindromic substring . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -manachar algorithm . . . x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -morse code . . . x . . . . . . x . . . x . . . . . . . x . . . x . . . . . . . . . . . . -naive pattern search . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -palindrome checker . . x x x x x . x . x . x x x . . x x . . . x . . x x . . x x . x . x . . x . -palindrome substring . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -pangram checker . . x x . . . . . . x . . x x . . . . . . x x . . . x . . x . . . . x . . . . -password strength checker . . . x . . . . . . . . . x x . . . . . . . . . . . x . . . . . . . . . . x . -rabin karp algorithm . . x . . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -remove dups . . x x . . . . . . . . . . x . . . . . . . . . . . x . . . x . . . . . . . . -suffix array . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -trie pattern search . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -z algorithm . . . x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . - ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- - 0 0 8 15 1 1 1 0 1 0 4 0 1 9 7 0 0 1 1 0 0 1 3 0 0 1 13 0 0 3 3 1 1 0 3 0 0 4 0 - - -THEORY OF COMPUTATION Ada BrainFuck C C++ Clojure Crisp Elixir Elm Erlang Fortran Golang HTML Haskell Java JavaScript Julia Jupyter Notebook Kotlin Lua ML Nim Objective-C PHP Perl Processing Development Environment PureScript Python Racket Reason Ruby Rust Scala Shell Script Standard ML Swift TypeScript Visual Basic Visual C# Visual F# ------------------------------------------------ ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- -deterministic finite automaton . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -nondeterministic finite atomaton . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . - ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 - - -UNCLASSIFIED Ada BrainFuck C C++ Clojure Crisp Elixir Elm Erlang Fortran Golang HTML Haskell Java JavaScript Julia Jupyter Notebook Kotlin Lua ML Nim Objective-C PHP Perl Processing Development Environment PureScript Python Racket Reason Ruby Rust Scala Shell Script Standard ML Swift TypeScript Visual Basic Visual C# Visual F# ------------------------------------------------ ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- -average . . x x . . x . x . x . . x x . . . . . . . x . . . x . . x x x x . x . . x . -biggest of n numbers . . x x . . . . . . . . . x x . . . . . . . . . . . x . . . . . . . . . . x . -biggest suffix . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -fifteen puzzle . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -jaccard similarity . . x . . . . . . . . . . x . . . . . . . . . . . . x . . . . . . . . . . . . -josephus problem . . x x . . . . . . x . . . . . . . . . . . . . . . x . . . . . . . . . . . . -lapindrom checker . . . x . . . . . . . . . . . . . . . . . . . . . . x . . . . . . . . . . . . -leap year . . x x . . . . . . x . . x . . . . . . x . . . . . x . . . x . . . . . . x . -magic square . . x . . . . . . . . . . . . . . . . . . . x . . . x . . . . . . . x . . . . -majority element . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -minimum subarray size with degree . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -no operator addition . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -optimized fibonacci . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -paint fill . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -smallest number to the left . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -spiral print . . x x . . . . . . x . . . . . . . . . . . . . . . x . . . . . . . . . . . . -split list . . . . . . . . . . . . . . x . . . . . . . . . . . x . . . . . . . . . . . . -tokenizer . . . x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -unique number . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . . . . -utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . . . . - ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- - 0 0 10 12 0 0 1 0 1 0 4 0 0 5 3 0 0 0 0 0 1 0 2 0 0 0 9 0 0 1 2 1 2 0 2 0 0 3 0 - - -UTILITY Ada BrainFuck C C++ Clojure Crisp Elixir Elm Erlang Fortran Golang HTML Haskell Java JavaScript Julia Jupyter Notebook Kotlin Lua ML Nim Objective-C PHP Perl Processing Development Environment PureScript Python Racket Reason Ruby Rust Scala Shell Script Standard ML Swift TypeScript Visual Basic Visual C# Visual F# ------------------------------------------------ ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- -palindrome check . . x x . . . . . . . . . x x . . . . . x . . . . . x . . x . . . . . . . x . - ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- - 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 - - -=============================================== =================================== =================================== =================================== =================================== =================================== =================================== =================================== =================================== =================================== =================================== =================================== =================================== =================================== =================================== =================================== =================================== =================================== =================================== =================================== =================================== =================================== =================================== =================================== =================================== =================================== =================================== =================================== =================================== =================================== =================================== =================================== =================================== =================================== =================================== =================================== =================================== =================================== =================================== =================================== - TOTALS: 1 1 247 378 4 1 13 2 6 1 109 2 37 244 121 4 6 16 3 4 3 23 48 4 1 1 309 1 2 59 50 41 16 2 61 5 1 60 3 diff --git a/build/lib/dumps/catMap.p b/build/lib/dumps/catMap.p deleted file mode 100755 index efdd2fe..0000000 --- a/build/lib/dumps/catMap.p +++ /dev/null @@ -1,5319 +0,0 @@ -(dp0 -Vbreadth -p1 -(lp2 -I240 -asVmonte -p3 -(lp4 -I274 -aI275 -asVcode -p5 -(lp6 -I99 -aI100 -aI123 -aI139 -aI149 -aI160 -aI163 -aI167 -aI174 -aI215 -aI271 -aI278 -aI313 -aI338 -aI429 -aI433 -aI458 -aI479 -aI483 -aI492 -aI506 -aI534 -aI652 -aI659 -aI677 -aI684 -aI702 -aI713 -aI748 -aI753 -aI795 -aI799 -asVchain -p7 -(lp8 -I211 -asVsimilarity -p9 -(lp10 -I110 -asVhooks -p11 -(lp12 -I7 -asVdynamic -p13 -(lp14 -I174 -aI175 -aI176 -aI177 -aI178 -aI179 -aI180 -aI181 -aI182 -aI183 -aI184 -aI185 -aI186 -aI187 -aI188 -aI189 -aI190 -aI191 -aI192 -aI193 -aI194 -aI195 -aI196 -aI197 -aI198 -aI199 -aI200 -aI201 -aI202 -aI203 -aI204 -aI205 -aI206 -aI207 -aI208 -aI209 -aI210 -aI211 -aI212 -aI213 -aI214 -asV010 -p15 -(lp16 -I720 -asVprefix -p17 -(lp18 -I631 -asVradix -p19 -(lp20 -I511 -asVsleep -p21 -(lp22 -I514 -asVcomputation -p23 -(lp24 -I429 -aI430 -aI431 -aI432 -asVgo -p25 -(lp26 -I68 -aI69 -aI70 -aI71 -aI97 -asV019 -p27 -(lp28 -I745 -asVtotient -p29 -(lp30 -I391 -asVcenters -p31 -(lp32 -I135 -asVtaxicab -p33 -(lp34 -I421 -asVinverse -p35 -(lp36 -I364 -aI375 -asViterator -p37 -(lp38 -I282 -asVgraph -p39 -(lp40 -I194 -aI215 -aI216 -aI217 -aI218 -aI219 -aI220 -aI221 -aI222 -aI223 -aI224 -aI225 -aI226 -aI226 -aI227 -aI228 -aI229 -aI230 -aI231 -aI232 -aI233 -aI234 -aI235 -aI236 -aI237 -aI238 -aI240 -aI241 -aI242 -aI243 -aI244 -aI244 -aI245 -aI246 -aI247 -aI248 -aI248 -aI249 -aI250 -aI251 -aI252 -aI253 -aI254 -aI254 -aI255 -aI255 -aI256 -aI257 -aI258 -aI259 -aI260 -aI261 -aI261 -aI262 -aI263 -aI264 -aI265 -aI266 -aI266 -aI267 -aI268 -aI269 -aI270 -asVexponentiation -p41 -(lp42 -I393 -aI394 -aI394 -asVto -p43 -(lp44 -I120 -aI354 -aI498 -aI596 -aI629 -aI631 -asVneighbours -p45 -(lp46 -I763 -asVswap -p47 -(lp48 -I465 -asVth -p49 -(lp50 -I563 -asVskip -p51 -(lp52 -I550 -asVcentroid -p53 -(lp54 -I250 -asVundirected -p55 -(lp56 -I244 -asVdivision -p57 -(lp58 -I399 -aI467 -asVdigit -p59 -(lp60 -I206 -aI401 -aI415 -asVqueen -p61 -(lp62 -I808 -asVstring -p63 -(lp64 -I342 -aI405 -aI677 -aI678 -aI679 -aI680 -aI681 -aI682 -aI683 -aI684 -aI685 -aI687 -aI688 -aI689 -aI690 -aI691 -aI692 -aI693 -aI694 -aI695 -aI696 -aI697 -aI698 -aI699 -aI700 -aI701 -aI814 -asVegyptian -p65 -(lp66 -I138 -asVrod -p67 -(lp68 -I185 -asVsimpsons -p69 -(lp70 -I377 -asVcoprime -p71 -(lp72 -I408 -asVknapsack -p73 -(lp74 -I127 -aI203 -asVbounding -p75 -(lp76 -I663 -asVtridiagonal -p77 -(lp78 -I424 -asVstrand -p79 -(lp80 -I747 -asVpartitions -p81 -(lp82 -I807 -aI809 -asVmagic -p83 -(lp84 -I119 -aI402 -aI478 -asVhamiltonian -p85 -(lp86 -I235 -aI262 -asVlisp -p87 -(lp88 -I88 -asVknight -p89 -(lp90 -I805 -asVlist -p91 -(lp92 -I122 -aI536 -aI547 -aI548 -aI548 -aI549 -aI550 -aI550 -aI551 -aI551 -aI552 -aI552 -aI553 -aI554 -aI554 -aI555 -aI563 -aI596 -aI639 -aI641 -asV012 -p93 -(lp94 -I742 -asVlarge -p95 -(lp96 -I687 -asV013 -p97 -(lp98 -I741 -asVq -p99 -(lp100 -I779 -asVquick -p101 -(lp102 -I153 -aI504 -aI532 -asV014 -p103 -(lp104 -I731 -asVcorasick -p105 -(lp106 -I682 -asVmos -p107 -(lp108 -I798 -asVround -p109 -(lp110 -I324 -aI325 -aI325 -asV016 -p111 -(lp112 -I727 -asVfence -p113 -(lp114 -I453 -asVmiller -p115 -(lp116 -I351 -asVprediction -p117 -(lp118 -I750 -asVjump -p119 -(lp120 -I707 -asV018 -p121 -(lp122 -I740 -asVcost -p123 -(lp124 -I179 -aI202 -asVdesign -p125 -(lp126 -I278 -aI279 -aI280 -aI281 -aI282 -aI283 -aI310 -aI311 -aI312 -aI312 -asVinsertion -p127 -(lp128 -I210 -aI531 -aI566 -asVn -p129 -(lp130 -I106 -aI234 -aI368 -aI563 -aI808 -asVcarlo -p131 -(lp132 -I274 -aI275 -asVmachines -p133 -(lp134 -I780 -asVlinear -p135 -(lp136 -I708 -aI762 -asVintersection -p137 -(lp138 -I664 -aI670 -aI673 -asVxor -p139 -(lp140 -I465 -aI472 -aI475 -aI551 -asVsub -p141 -(lp142 -I184 -asV2sum -p143 -(lp144 -I419 -asVsum -p145 -(lp146 -I177 -aI180 -aI184 -aI204 -aI208 -aI344 -aI462 -aI472 -aI495 -aI541 -aI594 -aI595 -aI595 -aI810 -asVlexicographic -p147 -(lp148 -I342 -aI366 -asVastar -p149 -(lp150 -I265 -asVsteiner -p151 -(lp152 -I269 -asVfractional -p153 -(lp154 -I127 -asVincreasing -p155 -(lp156 -I180 -aI199 -aI209 -asVmethod -p157 -(lp158 -I390 -aI400 -aI411 -aI498 -asVcoefficient -p159 -(lp160 -I183 -aI345 -asVhash -p161 -(lp162 -I650 -asVdegree -p163 -(lp164 -I107 -asVtags -p165 -(lp166 -I11 -asVv -p167 -(lp168 -I336 -asVcomponent -p169 -(lp170 -I791 -asVequals -p171 -(lp172 -I472 -asV020 -p173 -(lp174 -I734 -asVmodular -p175 -(lp176 -I375 -asVobjects -p177 -(lp178 -I4 -aI5 -aI6 -asVoperating -p179 -(lp180 -I313 -aI314 -aI315 -aI316 -aI318 -aI320 -aI327 -aI330 -asVfree -p181 -(lp182 -I416 -asV102 -p183 -(lp184 -I743 -asVpath -p185 -(lp186 -I137 -aI179 -aI194 -aI224 -aI233 -aI247 -aI258 -aI262 -aI266 -aI267 -aI541 -aI594 -aI595 -asVsieve -p187 -(lp188 -I357 -aI362 -aI365 -asVfifteen -p189 -(lp190 -I121 -asVchange -p191 -(lp192 -I205 -asVbox -p193 -(lp194 -I189 -aI663 -asVpreorder -p195 -(lp196 -I259 -aI585 -aI586 -aI587 -aI602 -asVsearch -p197 -(lp198 -I196 -aI240 -aI263 -aI683 -aI691 -aI693 -aI702 -aI703 -aI704 -aI705 -aI705 -aI706 -aI706 -aI707 -aI707 -aI708 -aI708 -aI709 -aI709 -aI710 -aI710 -aI711 -aI711 -aI712 -aI712 -asVk -p199 -(lp200 -I135 -aI258 -aI763 -aI794 -asVlarger -p201 -(lp202 -I355 -asVchans -p203 -(lp204 -I666 -asVqueue -p205 -(lp206 -I322 -aI572 -aI573 -aI640 -aI641 -aI641 -aI642 -aI642 -aI643 -aI643 -aI644 -aI645 -aI645 -aI646 -aI646 -aI647 -aI647 -asVpoisson -p207 -(lp208 -I397 -asVpermutation -p209 -(lp210 -I366 -asVautomaton -p211 -(lp212 -I139 -aI140 -aI141 -aI142 -aI143 -aI144 -aI145 -aI146 -aI147 -aI148 -aI432 -asVkayle -p213 -(lp214 -I751 -asVdiameter -p215 -(lp216 -I540 -aI593 -asVtasks -p217 -(lp218 -I297 -aI298 -aI299 -aI301 -aI302 -asVshuffle -p219 -(lp220 -I154 -aI409 -asVconvolution -p221 -(lp222 -I417 -asVtokenizer -p223 -(lp224 -I105 -asVlempel-ziv-welch -p225 -(lp226 -I489 -asVwin -p227 -(lp228 -I750 -asVraphson -p229 -(lp230 -I390 -asVreplace -p231 -(lp232 -I374 -asVorder -p233 -(lp234 -I366 -asVsupersequence -p235 -(lp236 -I200 -asVtopological -p237 -(lp238 -I257 -aI526 -asVperceptron -p239 -(lp240 -I758 -asVfrom -p241 -(lp242 -I155 -aI259 -aI601 -aI602 -asV0 -p243 -(lp244 -I374 -asVmst -p245 -(lp246 -I232 -asVhanoi -p247 -(lp248 -I346 -asVtwo -p249 -(lp250 -I618 -asVpigeonhole -p251 -(lp252 -I522 -asVperl -p253 -(lp254 -I83 -asVautomata -p255 -(lp256 -I144 -aI146 -aI148 -aI685 -aI686 -asVmemory -p257 -(lp258 -I327 -aI328 -aI329 -aI329 -aI770 -aI771 -asVbead -p259 -(lp260 -I533 -asVrefs -p261 -(lp262 -I8 -aI9 -aI11 -aI12 -aI16 -aI17 -aI19 -asVmatlab -p263 -(lp264 -I771 -asVsort -p265 -(lp266 -I153 -aI257 -aI496 -aI504 -aI509 -aI510 -aI511 -aI512 -aI513 -aI514 -aI515 -aI516 -aI517 -aI518 -aI519 -aI520 -aI521 -aI522 -aI523 -aI524 -aI525 -aI526 -aI527 -aI528 -aI529 -aI530 -aI531 -aI532 -aI533 -aI564 -aI633 -asVpalindrome -p267 -(lp268 -I169 -aI170 -aI170 -aI172 -aI173 -aI173 -aI181 -aI210 -aI692 -aI695 -asVdiamond -p269 -(lp270 -I162 -asVerode -p271 -(lp272 -I788 -asVnaive -p273 -(lp274 -I693 -aI761 -aI768 -asVadjacency -p275 -(lp276 -I239 -aI255 -aI256 -aI256 -asVdiophantine -p277 -(lp278 -I410 -asVfloyd -p279 -(lp280 -I242 -asVoop -p281 -(lp282 -I283 -aI284 -aI285 -aI291 -aI292 -aI295 -aI304 -aI306 -aI308 -asVstochastic -p283 -(lp284 -I777 -asVquickhull -p285 -(lp286 -I667 -asValigned -p287 -(lp288 -I663 -asV008 -p289 -(lp290 -I719 -asVpangram -p291 -(lp292 -I699 -asVsample -p293 -(lp294 -I397 -asVdeadlocks -p295 -(lp296 -I316 -aI317 -asVkasai -p297 -(lp298 -I690 -asVbits -p299 -(lp300 -I463 -aI471 -aI473 -asVml -p301 -(lp302 -I82 -asVprinting -p303 -(lp304 -I102 -asVkotlin -p305 -(lp306 -I30 -aI31 -aI32 -aI33 -aI80 -asVroot -p307 -(lp308 -I795 -aI796 -aI797 -aI798 -asVexample -p309 -(lp310 -I442 -asVfibonacci -p311 -(lp312 -I349 -aI706 -asVhodgeman -p313 -(lp314 -I665 -asVnearest -p315 -(lp316 -I763 -aI770 -aI771 -asVmultiway -p317 -(lp318 -I543 -aI544 -aI545 -aI611 -aI612 -aI613 -aI614 -aI615 -aI616 -asVstream -p319 -(lp320 -I155 -aI373 -aI643 -asVscan -p321 -(lp322 -I676 -asVstacking -p323 -(lp324 -I189 -asVpermutations -p325 -(lp326 -I814 -asVtable -p327 -(lp328 -I650 -asVbellman -p329 -(lp330 -I251 -asVsubstring -p331 -(lp332 -I186 -aI198 -aI695 -asVcollision -p333 -(lp334 -I663 -asVminimum -p335 -(lp336 -I107 -aI125 -aI131 -aI132 -aI133 -aI157 -aI202 -aI210 -aI227 -aI228 -aI230 -aI249 -aI253 -aI591 -asVnumbers -p337 -(lp338 -I106 -aI367 -aI368 -aI373 -aI403 -aI408 -aI421 -aI425 -aI428 -aI462 -aI687 -aI751 -asVscheduling -p339 -(lp340 -I195 -aI320 -aI321 -aI322 -aI322 -aI323 -aI324 -aI324 -aI325 -aI326 -asVspanning -p341 -(lp342 -I125 -aI131 -aI133 -aI228 -aI230 -aI249 -asVcounting -p343 -(lp344 -I517 -asVautokey -p345 -(lp346 -I456 -asVbogo -p347 -(lp348 -I523 -asVgcd -p349 -(lp350 -I347 -asVconvolutional -p351 -(lp352 -I793 -asVdivided -p353 -(lp354 -I414 -asVmachine -p355 -(lp356 -I769 -aI773 -asVwriters -p357 -(lp358 -I332 -asVoptimal -p359 -(lp360 -I196 -asVaxis -p361 -(lp362 -I663 -aI671 -asVcircular -p363 -(lp364 -I552 -aI553 -aI644 -asVbaconian -p365 -(lp366 -I435 -aI446 -asVemde -p367 -(lp368 -I580 -aI612 -asVmax -p369 -(lp370 -I498 -aI576 -asVmapping -p371 -(lp372 -I329 -asVmac -p373 -(lp374 -I28 -aI32 -aI36 -aI40 -aI44 -aI50 -aI54 -aI58 -aI62 -aI66 -aI70 -aI74 -asVbirthday -p375 -(lp376 -I156 -asVmultiplication -p377 -(lp378 -I211 -aI392 -aI406 -aI500 -aI503 -asVdata -p379 -(lp380 -I238 -aI239 -aI534 -aI535 -aI536 -aI537 -aI546 -aI547 -aI568 -aI627 -aI628 -aI639 -aI640 -aI648 -aI651 -asVpostorder -p381 -(lp382 -I259 -aI601 -asVa -p383 -(lp384 -I778 -aI804 -asVacyclic -p385 -(lp386 -I266 -asVbranches -p387 -(lp388 -I13 -asVjohnson -p389 -(lp390 -I233 -asVpostfix -p391 -(lp392 -I629 -aI631 -aI632 -asVelement -p393 -(lp394 -I104 -aI152 -asVheight -p395 -(lp396 -I591 -aI598 -asValgorithms -p397 -(lp398 -I123 -aI124 -aI125 -aI126 -aI127 -aI128 -aI129 -aI130 -aI131 -aI132 -aI133 -aI134 -aI135 -aI136 -aI137 -aI138 -aI149 -aI150 -aI151 -aI152 -aI153 -aI154 -aI155 -aI156 -aI157 -aI158 -aI159 -aI163 -aI164 -aI165 -aI166 -aI215 -aI216 -aI217 -aI218 -aI219 -aI220 -aI221 -aI222 -aI223 -aI224 -aI225 -aI226 -aI227 -aI228 -aI229 -aI230 -aI231 -aI232 -aI233 -aI234 -aI235 -aI236 -aI237 -aI238 -aI240 -aI241 -aI242 -aI243 -aI244 -aI245 -aI246 -aI247 -aI248 -aI249 -aI250 -aI251 -aI252 -aI253 -aI254 -aI255 -aI257 -aI258 -aI259 -aI260 -aI261 -aI262 -aI263 -aI264 -aI265 -aI266 -aI267 -aI268 -aI269 -aI270 -aI338 -aI339 -aI340 -aI341 -aI342 -aI343 -aI344 -aI345 -aI346 -aI347 -aI348 -aI349 -aI350 -aI354 -aI355 -aI356 -aI357 -aI358 -aI359 -aI360 -aI361 -aI362 -aI363 -aI364 -aI365 -aI366 -aI367 -aI368 -aI369 -aI370 -aI371 -aI372 -aI373 -aI374 -aI375 -aI376 -aI377 -aI378 -aI387 -aI388 -aI389 -aI390 -aI391 -aI392 -aI393 -aI395 -aI396 -aI397 -aI398 -aI399 -aI400 -aI401 -aI402 -aI403 -aI404 -aI405 -aI406 -aI407 -aI408 -aI409 -aI410 -aI411 -aI412 -aI413 -aI414 -aI415 -aI416 -aI417 -aI418 -aI419 -aI420 -aI421 -aI422 -aI423 -aI424 -aI425 -aI426 -aI427 -aI428 -aI677 -aI678 -aI679 -aI680 -aI681 -aI682 -aI683 -aI684 -aI685 -aI687 -aI688 -aI689 -aI690 -aI691 -aI692 -aI693 -aI694 -aI695 -aI696 -aI697 -aI698 -aI699 -aI700 -aI701 -asVatomaton -p399 -(lp400 -I431 -asVrepresentation -p401 -(lp402 -I255 -aI256 -asVegg -p403 -(lp404 -I192 -asVbipartite -p405 -(lp406 -I222 -aI229 -aI236 -asVoperations -p407 -(lp408 -I553 -aI555 -aI556 -aI557 -aI558 -aI559 -aI560 -aI561 -aI562 -aI563 -aI564 -aI565 -aI566 -aI567 -asVgrundy -p409 -(lp410 -I751 -asVfeedback -p411 -(lp412 -I322 -asVreservoir -p413 -(lp414 -I158 -asVis -p415 -(lp416 -I418 -aI542 -aI592 -aI597 -aI605 -asVusing -p417 -(lp418 -I463 -aI496 -aI641 -aI646 -asVmove -p419 -(lp420 -I752 -asVbalanced -p421 -(lp422 -I635 -asVbrain -p423 -(lp424 -I142 -asVpascal -p425 -(lp426 -I72 -aI73 -aI74 -aI75 -aI98 -aI356 -asVcomputational -p427 -(lp428 -I659 -aI660 -aI661 -aI662 -aI663 -aI664 -aI665 -aI666 -aI667 -aI668 -aI669 -aI670 -aI671 -aI672 -aI673 -aI674 -aI675 -aI676 -asVsame -p429 -(lp430 -I542 -aI605 -asVconcurrency -p431 -(lp432 -I330 -aI331 -aI332 -aI333 -aI335 -aI337 -asVcsharp -p433 -(lp434 -I441 -aI442 -asVpeterson -p435 -(lp436 -I333 -aI334 -aI334 -asVperfect -p437 -(lp438 -I361 -asVbridges -p439 -(lp440 -I248 -asVstyle -p441 -(lp442 -I76 -aI77 -aI78 -aI79 -aI80 -aI81 -aI82 -aI83 -aI84 -aI85 -aI86 -aI87 -aI88 -aI89 -aI90 -aI91 -aI92 -aI93 -aI97 -aI98 -aI775 -asVexclusion -p443 -(lp444 -I333 -aI334 -asVimg -p445 -(lp446 -I657 -aI787 -asVprewittfilter -p447 -(lp448 -I782 -asVfermats -p449 -(lp450 -I423 -asVaffine -p451 -(lp452 -I455 -asVsquaring -p453 -(lp454 -I394 -asVlossless -p455 -(lp456 -I485 -aI486 -aI488 -aI489 -aI490 -asVhashs -p457 -(lp458 -I648 -aI649 -aI650 -asVpolicy -p459 -(lp460 -I312 -asVtravelling -p461 -(lp462 -I232 -asVmain -p463 -(lp464 -I381 -aI382 -asVimage -p465 -(lp466 -I781 -aI782 -aI783 -aI784 -aI785 -aI786 -aI786 -aI787 -aI788 -asVtsp -p467 -(lp468 -I764 -asVprime -p469 -(lp470 -I341 -aI368 -asVtypescript -p471 -(lp472 -I77 -asVdna -p473 -(lp474 -I747 -asVpython -p475 -(lp476 -I42 -aI43 -aI44 -aI45 -aI46 -aI47 -aI86 -asVaho -p477 -(lp478 -I682 -asVnewman -p479 -(lp480 -I359 -asVflash -p481 -(lp482 -I510 -asVrosalind -p483 -(lp484 -I746 -aI747 -asVcutting -p485 -(lp486 -I185 -asVconquer -p487 -(lp488 -I492 -aI493 -aI494 -aI495 -aI496 -aI496 -aI497 -aI498 -aI499 -aI500 -aI501 -aI502 -aI503 -aI504 -aI505 -asVtribonacci -p489 -(lp490 -I367 -asV022 -p491 -(lp492 -I737 -asVsorted -p493 -(lp494 -I567 -asVboruvka -p495 -(lp496 -I249 -asV028 -p497 -(lp498 -I721 -asVinversion -p499 -(lp500 -I499 -asVswapper -p501 -(lp502 -I477 -asVwarshall -p503 -(lp504 -I130 -aI242 -asVbrians -p505 -(lp506 -I142 -asVlevel -p507 -(lp508 -I322 -asVporta -p509 -(lp510 -I447 -asV2d -p511 -(lp512 -I671 -aI673 -asVmerge -p513 -(lp514 -I496 -aI525 -aI567 -asVpeasant -p515 -(lp516 -I392 -asVarraystack -p517 -(lp518 -I638 -asVrepeating -p519 -(lp520 -I176 -aI188 -asVsubset -p521 -(lp522 -I177 -aI204 -aI469 -aI810 -asVsquare -p523 -(lp524 -I119 -aI162 -aI402 -aI416 -aI418 -aI795 -aI796 -aI797 -aI798 -asVlogs -p525 -(lp526 -I15 -aI16 -asVweight -p527 -(lp528 -I194 -asVgeneration -p529 -(lp530 -I469 -asVcontiguous -p531 -(lp532 -I208 -aI495 -asVgaussian -p533 -(lp534 -I378 -aI379 -aI383 -aI384 -aI481 -aI761 -aI767 -asVnumeric -p535 -(lp536 -I212 -asVchallenges -p537 -(lp538 -I713 -aI714 -aI715 -aI716 -aI746 -asVoperator -p539 -(lp540 -I116 -asVatbash -p541 -(lp542 -I457 -asVremove -p543 -(lp544 -I681 -asVyear -p545 -(lp546 -I111 -asVseparating -p547 -(lp548 -I671 -asVsalesman -p549 -(lp550 -I232 -asVmonitors -p551 -(lp552 -I335 -aI336 -aI336 -asVdbscan -p553 -(lp554 -I756 -asVnetwork -p555 -(lp556 -I294 -aI757 -aI790 -aI793 -asVfactors -p557 -(lp558 -I341 -asVgradient -p559 -(lp560 -I766 -asVrestricted -p561 -(lp562 -I773 -asVfactory -p563 -(lp564 -I306 -aI307 -asVsolovay-strassen -p565 -(lp566 -I353 -asVvector -p567 -(lp568 -I769 -asVhill -p569 -(lp570 -I376 -asVprint -p571 -(lp572 -I114 -aI561 -asVevaluation -p573 -(lp574 -I389 -aI632 -asVred -p575 -(lp576 -I544 -aI613 -asVtheory -p577 -(lp578 -I429 -aI430 -aI431 -aI432 -aI748 -aI749 -aI750 -aI751 -aI752 -asVtransfer -p579 -(lp580 -I775 -asVgreedy -p581 -(lp582 -I123 -aI124 -aI125 -aI126 -aI127 -aI128 -aI129 -aI130 -aI131 -aI132 -aI133 -aI134 -aI135 -aI136 -aI137 -aI138 -asVproxy -p583 -(lp584 -I285 -aI286 -aI287 -aI288 -aI289 -aI290 -asVboosting -p585 -(lp586 -I766 -asVnetworking -p587 -(lp588 -I652 -aI653 -aI654 -aI655 -aI656 -aI658 -asVbyte -p589 -(lp590 -I477 -asVinfix -p591 -(lp592 -I629 -asVshortest -p593 -(lp594 -I137 -aI200 -aI233 -aI247 -aI258 -aI326 -asVcompression -p595 -(lp596 -I483 -aI484 -aI485 -aI485 -aI486 -aI487 -aI488 -aI488 -aI489 -aI490 -aI491 -aI491 -asV003 -p597 -(lp598 -I726 -asVmedian-of-medians -p599 -(lp600 -I166 -asVgeometry -p601 -(lp602 -I659 -aI660 -aI661 -aI662 -aI663 -aI664 -aI665 -aI666 -aI667 -aI668 -aI669 -aI670 -aI671 -aI672 -aI673 -aI674 -aI675 -aI676 -asVbitonic -p603 -(lp604 -I201 -asVprogramming -p605 -(lp606 -I174 -aI175 -aI176 -aI177 -aI178 -aI179 -aI180 -aI181 -aI182 -aI183 -aI184 -aI185 -aI186 -aI187 -aI188 -aI189 -aI190 -aI191 -aI192 -aI193 -aI194 -aI195 -aI196 -aI197 -aI198 -aI199 -aI200 -aI201 -aI202 -aI203 -aI204 -aI205 -aI206 -aI207 -aI208 -aI209 -aI210 -aI211 -aI212 -aI213 -aI214 -asVfilter -p607 -(lp608 -I481 -aI482 -aI649 -asVsignature -p609 -(lp610 -I448 -asVfirst -p611 -(lp612 -I240 -aI263 -aI321 -aI321 -aI323 -aI326 -asVorigin -p613 -(lp614 -I10 -aI18 -asVinfo -p615 -(lp616 -I5 -aI14 -asVsingleton -p617 -(lp618 -I281 -aI284 -asVsuffix -p619 -(lp620 -I112 -aI578 -aI689 -asVencoding -p621 -(lp622 -I449 -asV004 -p623 -(lp624 -I722 -asVcoding -p625 -(lp626 -I76 -aI77 -aI78 -aI79 -aI80 -aI81 -aI82 -aI83 -aI84 -aI85 -aI86 -aI87 -aI88 -aI89 -aI90 -aI91 -aI92 -aI93 -aI97 -aI98 -aI134 -asVnumber -p627 -(lp628 -I113 -aI120 -aI349 -aI355 -aI358 -aI361 -aI369 -aI387 -aI388 -aI395 -aI401 -aI415 -aI416 -aI464 -aI468 -aI474 -aI478 -aI809 -aI812 -asVrank -p629 -(lp630 -I342 -asVtransform -p631 -(lp632 -I426 -asVrandomized -p633 -(lp634 -I149 -aI150 -aI151 -aI152 -aI153 -aI153 -aI154 -aI155 -aI156 -aI157 -aI158 -aI159 -asVarray -p635 -(lp636 -I154 -aI191 -aI409 -aI578 -aI689 -asVsutherland -p637 -(lp638 -I665 -aI674 -asV009 -p639 -(lp640 -I735 -asVsize -p641 -(lp642 -I107 -asVlittle -p643 -(lp644 -I423 -asVmanagement -p645 -(lp646 -I327 -aI328 -aI329 -asVheads -p647 -(lp648 -I12 -aI19 -asVobserver -p649 -(lp650 -I291 -aI292 -aI293 -aI293 -aI294 -asVbloom -p651 -(lp652 -I649 -asVsystem -p653 -(lp654 -I313 -aI314 -aI315 -aI316 -aI318 -aI320 -aI327 -aI330 -aI336 -asVleast -p655 -(lp656 -I328 -asVstack -p657 -(lp658 -I628 -aI629 -aI630 -aI630 -aI631 -aI632 -aI633 -aI633 -aI634 -aI634 -aI635 -aI636 -aI636 -aI637 -aI646 -asVpriority -p659 -(lp660 -I572 -aI573 -asVpaint -p661 -(lp662 -I109 -asVchecker -p663 -(lp664 -I115 -aI680 -aI692 -aI697 -aI699 -asV2 -p665 -(lp666 -I476 -asVkarger -p667 -(lp668 -I157 -aI253 -asV.git -p669 -(lp670 -I3 -aI4 -aI7 -aI8 -aI13 -aI14 -aI15 -asVrabin -p671 -(lp672 -I351 -aI696 -asVstructures -p673 -(lp674 -I238 -aI239 -aI385 -aI534 -aI535 -aI536 -aI537 -aI546 -aI547 -aI568 -aI627 -aI628 -aI639 -aI640 -aI648 -aI651 -asVjarvis -p675 -(lp676 -I672 -asVshell -p677 -(lp678 -I318 -aI319 -aI521 -asV067 -p679 -(lp680 -I736 -asVgym -p681 -(lp682 -I298 -asVserve -p683 -(lp684 -I321 -asVrsa -p685 -(lp686 -I437 -aI448 -asVlists -p687 -(lp688 -I255 -aI256 -aI256 -asVthreaded -p689 -(lp690 -I589 -asVmanipulation -p691 -(lp692 -I458 -aI459 -aI460 -aI461 -aI462 -aI463 -aI464 -aI465 -aI466 -aI467 -aI468 -aI469 -aI470 -aI471 -aI472 -aI473 -aI474 -aI475 -aI476 -aI477 -aI478 -asVpacketsniffer -p693 -(lp694 -I656 -aI657 -asVquad -p695 -(lp696 -I622 -asVstd -p697 -(lp698 -I412 -asVdistance -p699 -(lp700 -I190 -aI470 -aI675 -aI688 -asVb -p701 -(lp702 -I617 -aI618 -aI619 -aI619 -aI620 -aI620 -asVthird -p703 -(lp704 -I22 -aI23 -asVautomorphic -p705 -(lp706 -I403 -asVbag -p707 -(lp708 -I627 -asVdfa -p709 -(lp710 -I399 -asVlangtons -p711 -(lp712 -I143 -asVneural -p713 -(lp714 -I757 -aI775 -aI790 -aI793 -asVtree -p715 -(lp716 -I125 -aI131 -aI133 -aI196 -aI228 -aI230 -aI231 -aI237 -aI249 -aI269 -aI512 -aI537 -aI538 -aI538 -aI539 -aI539 -aI540 -aI541 -aI542 -aI543 -aI543 -aI544 -aI544 -aI545 -aI568 -aI569 -aI573 -aI577 -aI577 -aI578 -aI579 -aI580 -aI580 -aI581 -aI581 -aI582 -aI583 -aI583 -aI584 -aI591 -aI592 -aI592 -aI593 -aI594 -aI596 -aI597 -aI598 -aI599 -aI600 -aI600 -aI601 -aI602 -aI603 -aI603 -aI604 -aI604 -aI605 -aI606 -aI606 -aI607 -aI608 -aI608 -aI609 -aI610 -aI610 -aI611 -aI611 -aI612 -aI612 -aI613 -aI613 -aI614 -aI615 -aI615 -aI616 -aI616 -aI617 -aI617 -aI618 -aI618 -aI619 -aI619 -aI620 -aI620 -aI621 -aI621 -aI622 -aI622 -aI623 -aI623 -aI624 -aI624 -aI625 -aI625 -aI626 -aI626 -aI760 -asVproject -p717 -(lp718 -I386 -aI716 -aI717 -aI718 -aI719 -aI720 -aI721 -aI722 -aI723 -aI724 -aI725 -aI726 -aI727 -aI728 -aI729 -aI730 -aI731 -aI732 -aI733 -aI734 -aI735 -aI736 -aI737 -aI738 -aI739 -aI740 -aI741 -aI742 -aI743 -aI744 -aI745 -asVsubsequence -p719 -(lp720 -I176 -aI180 -aI188 -aI199 -aI209 -aI213 -aI495 -asVbiconnected -p721 -(lp722 -I245 -asVkth -p723 -(lp724 -I152 -asVdoubly -p725 -(lp726 -I548 -aI549 -aI596 -asVand -p727 -(lp728 -I259 -aI347 -aI496 -aI601 -aI602 -asVbridge -p729 -(lp730 -I231 -asVkarp -p731 -(lp732 -I221 -aI696 -asVlinkedlist -p733 -(lp734 -I159 -asVkutt -p735 -(lp736 -I276 -aI277 -asVcohen -p737 -(lp738 -I674 -asVant -p739 -(lp740 -I143 -asVmanachar -p741 -(lp742 -I698 -asV026 -p743 -(lp744 -I718 -asVlargrange -p745 -(lp746 -I413 -asVdisjoint -p747 -(lp748 -I243 -asVseek -p749 -(lp750 -I326 -asVlinked -p751 -(lp752 -I548 -aI549 -aI551 -aI552 -aI553 -aI554 -aI555 -aI563 -aI596 -aI639 -aI641 -asVsat -p753 -(lp754 -I759 -asVpaths -p755 -(lp756 -I243 -asVconversion -p757 -(lp758 -I396 -asVstrength -p759 -(lp760 -I680 -asValgorithm-x -p761 -(lp762 -I806 -asVmin -p763 -(lp764 -I179 -aI498 -aI574 -asVbron -p765 -(lp766 -I264 -asVmajority -p767 -(lp768 -I104 -asVcaesar -p769 -(lp770 -I438 -asVbest -p771 -(lp772 -I752 -asVonline -p773 -(lp774 -I713 -aI714 -aI715 -aI716 -aI746 -asVchannel -p775 -(lp776 -I225 -asVbuffer -p777 -(lp778 -I644 -asVzigzag -p779 -(lp780 -I590 -asVsplay -p781 -(lp782 -I615 -asVy -p783 -(lp784 -I501 -asVboltzmann -p785 -(lp786 -I773 -asVcipher -p787 -(lp788 -I435 -aI438 -aI439 -aI445 -aI446 -aI447 -aI450 -aI451 -aI452 -aI453 -aI454 -aI455 -aI456 -aI457 -asVconnected -p789 -(lp790 -I260 -aI268 -aI270 -asVscripts -p791 -(lp792 -I21 -asVmultiply -p793 -(lp794 -I370 -asVcoin -p795 -(lp796 -I205 -asVcellular -p797 -(lp798 -I139 -aI140 -aI141 -aI142 -aI143 -aI144 -aI144 -aI145 -aI146 -aI146 -aI147 -aI148 -aI148 -asVmodel -p799 -(lp800 -I767 -asVkd -p801 -(lp802 -I625 -asVwindows -p803 -(lp804 -I29 -aI33 -aI37 -aI41 -aI45 -aI51 -aI55 -aI59 -aI63 -aI67 -aI71 -aI75 -asVaverage -p805 -(lp806 -I117 -aI373 -asVpartition -p807 -(lp808 -I181 -asVcover -p809 -(lp810 -I241 -asVvertices -p811 -(lp812 -I220 -asVnobili -p813 -(lp814 -I148 -asVpoints -p815 -(lp816 -I502 -aI675 -asVhamming -p817 -(lp818 -I470 -asVconsumer -p819 -(lp820 -I337 -asVselection -p821 -(lp822 -I128 -aI163 -aI164 -aI165 -aI166 -aI516 -asVprim -p823 -(lp824 -I133 -aI230 -asVjosephus -p825 -(lp826 -I108 -asVdups -p827 -(lp828 -I681 -asVendianess -p829 -(lp830 -I658 -asVrandom -p831 -(lp832 -I155 -aI159 -aI789 -asVrussian -p833 -(lp834 -I392 -asVfuzzy -p835 -(lp836 -I710 -asVsoldiers -p837 -(lp838 -I305 -asVdecoding -p839 -(lp840 -I405 -asVfind -p841 -(lp842 -I498 -aI545 -aI559 -aI614 -asVbacktracking -p843 -(lp844 -I799 -aI800 -aI801 -aI802 -aI803 -aI804 -aI805 -aI806 -aI807 -aI808 -aI809 -aI810 -aI811 -aI812 -aI813 -aI814 -asVmake -p845 -(lp846 -I600 -aI601 -aI602 -aI606 -asVcoloring -p847 -(lp848 -I254 -aI813 -asVbased -p849 -(lp850 -I312 -asVproducer -p851 -(lp852 -I337 -asVdistributed -p853 -(lp854 -I777 -asVfulkerson -p855 -(lp856 -I219 -asVblack -p857 -(lp858 -I544 -aI613 -asVpandigital -p859 -(lp860 -I387 -asVcircle -p861 -(lp862 -I509 -asVkaratsuba -p863 -(lp864 -I406 -aI503 -asVip -p865 -(lp866 -I655 -asVdirected -p867 -(lp868 -I261 -aI266 -asVmixture -p869 -(lp870 -I767 -asVtriangle -p871 -(lp872 -I356 -aI662 -asVcryptography -p873 -(lp874 -I433 -aI434 -aI435 -aI436 -aI437 -aI438 -aI439 -aI440 -aI443 -aI445 -aI446 -aI447 -aI448 -aI449 -aI450 -aI451 -aI452 -aI453 -aI454 -aI455 -aI456 -aI457 -asVmeans -p875 -(lp876 -I794 -asVbetween -p877 -(lp878 -I675 -asVbresenham -p879 -(lp880 -I668 -asVlucky -p881 -(lp882 -I395 -asVtrees -p883 -(lp884 -I766 -asVm -p885 -(lp886 -I813 -asVremotes -p887 -(lp888 -I9 -aI10 -aI17 -aI18 -asVones -p889 -(lp890 -I207 -asVdelannoy -p891 -(lp892 -I358 -asVlongest -p893 -(lp894 -I176 -aI186 -aI187 -aI188 -aI193 -aI198 -aI199 -aI201 -aI209 -aI213 -aI266 -asV128 -p895 -(lp896 -I440 -aI441 -asVmorse -p897 -(lp898 -I450 -aI684 -asVdp -p899 -(lp900 -I206 -asVclosure -p901 -(lp902 -I226 -asVaes -p903 -(lp904 -I440 -aI441 -aI441 -aI442 -asVstitching -p905 -(lp906 -I786 -aI787 -asVtwice -p907 -(lp908 -I474 -asVtransposition -p909 -(lp910 -I452 -asVmedian -p911 -(lp912 -I191 -aI482 -aI524 -asVdijkstra -p913 -(lp914 -I137 -aI247 -asVc++ -p915 -(lp916 -I2 -aI64 -aI65 -aI66 -aI67 -aI93 -aI94 -asVmorning -p917 -(lp918 -I299 -aI300 -asVtriplet -p919 -(lp920 -I404 -asVsha -p921 -(lp922 -I443 -aI444 -aI444 -asVcommon -p923 -(lp924 -I198 -aI200 -aI209 -aI213 -asVlogistic -p925 -(lp926 -I772 -asVactivity -p927 -(lp928 -I128 -asVx -p929 -(lp930 -I501 -asVview -p931 -(lp932 -I237 -aI586 -aI587 -aI604 -asVset -p933 -(lp934 -I193 -aI194 -aI473 -aI807 -asVfilters -p935 -(lp936 -I479 -aI480 -aI481 -aI482 -asVkeypad -p937 -(lp938 -I212 -asVprincipal -p939 -(lp940 -I791 -asVintelligence -p941 -(lp942 -I753 -aI754 -aI755 -aI756 -aI757 -aI758 -aI759 -aI760 -aI761 -aI762 -aI763 -aI764 -aI765 -aI766 -aI767 -aI768 -aI769 -aI770 -aI772 -aI773 -aI774 -aI775 -aI776 -aI777 -aI778 -aI779 -aI780 -aI781 -aI789 -aI790 -aI791 -aI792 -aI793 -aI794 -asVflip -p943 -(lp944 -I471 -asVcomputer -p945 -(lp946 -I160 -aI161 -aI162 -asVprimality -p947 -(lp948 -I350 -aI351 -aI351 -aI352 -aI352 -aI353 -aI353 -asV036 -p949 -(lp950 -I729 -asV037 -p951 -(lp952 -I733 -asV034 -p953 -(lp954 -I739 -asVpolybius -p955 -(lp956 -I454 -asVdetect -p957 -(lp958 -I560 -asVways -p959 -(lp960 -I234 -aI812 -asVpattern -p961 -(lp962 -I278 -aI279 -aI280 -aI281 -aI281 -aI282 -aI282 -aI283 -aI284 -aI291 -aI310 -aI311 -aI311 -aI312 -aI683 -aI693 -asVartificial -p963 -(lp964 -I753 -aI754 -aI755 -aI756 -aI757 -aI758 -aI759 -aI760 -aI761 -aI762 -aI763 -aI764 -aI765 -aI766 -aI767 -aI768 -aI769 -aI770 -aI772 -aI773 -aI774 -aI775 -aI776 -aI777 -aI778 -aI779 -aI780 -aI781 -aI789 -aI790 -aI790 -aI791 -aI792 -aI793 -aI794 -asVpowerset -p965 -(lp966 -I811 -asVcrossword -p967 -(lp968 -I802 -asVsmallest -p969 -(lp970 -I120 -aI152 -aI323 -aI415 -asVroutine -p971 -(lp972 -I300 -aI303 -asVsubarray -p973 -(lp974 -I107 -aI208 -asVinorder -p975 -(lp976 -I259 -aI588 -aI589 -aI601 -aI602 -asVderangements -p977 -(lp978 -I371 -asVrecently -p979 -(lp980 -I328 -asVcomplement -p981 -(lp982 -I747 -asVjavascript -p983 -(lp984 -I56 -aI57 -aI58 -aI59 -aI91 -asVf# -p985 -(lp986 -I84 -asVdeterministic -p987 -(lp988 -I432 -asVjob -p989 -(lp990 -I136 -aI195 -aI301 -asVcomb -p991 -(lp992 -I519 -asVswift -p993 -(lp994 -I52 -aI53 -aI54 -aI55 -aI90 -asVproblem -p995 -(lp996 -I108 -aI197 -aI212 -aI717 -aI718 -aI719 -aI720 -aI721 -aI722 -aI723 -aI724 -aI725 -aI726 -aI727 -aI728 -aI729 -aI730 -aI731 -aI732 -aI733 -aI734 -aI735 -aI736 -aI737 -aI738 -aI739 -aI740 -aI741 -aI742 -aI743 -aI744 -aI745 -aI813 -asVfactorization -p997 -(lp998 -I780 -asVc -p999 -(lp1000 -I38 -aI39 -aI40 -aI41 -aI85 -aI239 -aI256 -aI319 -aI325 -aI334 -aI549 -aI620 -aI686 -asVinstallation -p1001 -(lp1002 -I25 -aI26 -aI30 -aI34 -aI38 -aI42 -aI46 -aI48 -aI52 -aI56 -aI60 -aI64 -aI68 -aI72 -asVreverse -p1003 -(lp1004 -I360 -aI388 -aI558 -aI561 -aI630 -aI645 -asVadapter -p1005 -(lp1006 -I304 -aI305 -asVreaders -p1007 -(lp1008 -I332 -asVspace -p1009 -(lp1010 -I621 -aI622 -aI623 -aI624 -aI625 -asVs -p1011 -(lp1012 -I227 -asVprotection -p1013 -(lp1014 -I289 -aI290 -asVconsec -p1015 -(lp1016 -I207 -asVembedding -p1017 -(lp1018 -I777 -asVexpression -p1019 -(lp1020 -I635 -asVboyer -p1021 -(lp1022 -I701 -asVaa -p1023 -(lp1024 -I608 -asVsphere -p1025 -(lp1026 -I664 -asVpassword -p1027 -(lp1028 -I680 -asVsampling -p1029 -(lp1030 -I158 -asVlearning -p1031 -(lp1032 -I779 -asVlinux -p1033 -(lp1034 -I27 -aI31 -aI35 -aI39 -aI43 -aI47 -aI49 -aI53 -aI57 -aI61 -aI65 -aI69 -aI73 -asVpolynomial -p1035 -(lp1036 -I370 -aI389 -aI407 -aI413 -asVboas -p1037 -(lp1038 -I580 -aI612 -asVlipogram -p1039 -(lp1040 -I697 -asV256 -p1041 -(lp1042 -I444 -asVjava -p1043 -(lp1044 -I60 -aI61 -aI62 -aI63 -aI92 -aI292 -aI293 -asVaddition -p1045 -(lp1046 -I116 -aI463 -asVcome -p1047 -(lp1048 -I321 -asVinvert -p1049 -(lp1050 -I466 -asVthree -p1051 -(lp1052 -I618 -asVtreap -p1053 -(lp1054 -I582 -asVgenetic -p1055 -(lp1056 -I147 -asVdropping -p1057 -(lp1058 -I192 -asVcolumnar -p1059 -(lp1060 -I452 -asVthrice -p1061 -(lp1062 -I464 -asVdigits -p1063 -(lp1064 -I344 -aI348 -asVlife -p1065 -(lp1066 -I145 -asVbit -p1067 -(lp1068 -I458 -aI459 -aI460 -aI461 -aI462 -aI463 -aI464 -aI465 -aI466 -aI466 -aI467 -aI467 -aI468 -aI469 -aI470 -aI471 -aI472 -aI473 -aI474 -aI475 -aI476 -aI477 -aI478 -asVc# -p1069 -(lp1070 -I89 -asVparenthesization -p1071 -(lp1072 -I182 -asVconvert -p1073 -(lp1074 -I468 -aI596 -asVtraversal -p1075 -(lp1076 -I584 -aI585 -aI588 -aI590 -asVjacobi -p1077 -(lp1078 -I400 -asVlevenshtein -p1079 -(lp1080 -I688 -asVgraphics -p1081 -(lp1082 -I160 -aI161 -aI162 -asVruby -p1083 -(lp1084 -I34 -aI35 -aI36 -aI37 -aI81 -asVmulti -p1085 -(lp1086 -I322 -asVexponential -p1087 -(lp1088 -I712 -asVtetrahedron -p1089 -(lp1090 -I664 -asVrat -p1091 -(lp1092 -I804 -asVvalue -p1093 -(lp1094 -I475 -asVremaining -p1095 -(lp1096 -I323 -asVrope -p1097 -(lp1098 -I609 -asVfunctional-patterns -p1099 -(lp1100 -I310 -asVbalance -p1101 -(lp1102 -I597 -asVrobin -p1103 -(lp1104 -I324 -aI325 -aI325 -asVpack -p1105 -(lp1106 -I6 -asVdemo -p1107 -(lp1108 -I288 -asVvon -p1109 -(lp1110 -I146 -asVavl -p1111 -(lp1112 -I610 -asVevening -p1113 -(lp1114 -I302 -aI303 -asVin -p1115 -(lp1116 -I248 -aI256 -aI334 -aI401 -aI415 -aI804 -aI812 -asVfacade -p1117 -(lp1118 -I295 -aI296 -asVregression -p1119 -(lp1120 -I762 -aI772 -asVbinary -p1121 -(lp1122 -I196 -aI237 -aI462 -aI468 -aI538 -aI539 -aI539 -aI540 -aI541 -aI542 -aI581 -aI582 -aI583 -aI583 -aI584 -aI591 -aI592 -aI592 -aI593 -aI594 -aI596 -aI597 -aI598 -aI599 -aI600 -aI600 -aI601 -aI602 -aI603 -aI604 -aI605 -aI606 -aI607 -aI608 -aI609 -aI610 -aI711 -asVfleury -p1123 -(lp1124 -I267 -asVdescent -p1125 -(lp1126 -I420 -asVdilate -p1127 -(lp1128 -I788 -asVgraham -p1129 -(lp1130 -I676 -asVfractals -p1131 -(lp1132 -I422 -asVroman -p1133 -(lp1134 -I354 -asVsqrt -p1135 -(lp1136 -I364 -asVfactorial -p1137 -(lp1138 -I214 -aI343 -aI360 -aI427 -aI505 -asVrot13 -p1139 -(lp1140 -I445 -asVcanny -p1141 -(lp1142 -I784 -asVsplit -p1143 -(lp1144 -I122 -asVrunge -p1145 -(lp1146 -I276 -aI277 -asVlargest -p1147 -(lp1148 -I208 -asVparty -p1149 -(lp1150 -I22 -aI23 -asVfinite -p1151 -(lp1152 -I431 -aI432 -aI685 -aI686 -asVinterpolation -p1153 -(lp1154 -I709 -asVindependent -p1155 -(lp1156 -I193 -aI194 -asVleftist -p1157 -(lp1158 -I573 -asVused -p1159 -(lp1160 -I328 -asVclosest -p1161 -(lp1162 -I502 -asVnim -p1163 -(lp1164 -I750 -aI752 -asVassignment -p1165 -(lp1166 -I225 -asVnumerical -p1167 -(lp1168 -I271 -aI272 -aI274 -aI276 -asVrail -p1169 -(lp1170 -I453 -asVtriangulation -p1171 -(lp1172 -I202 -asV002 -p1173 -(lp1174 -I717 -asV001 -p1175 -(lp1176 -I728 -asVedges -p1177 -(lp1178 -I258 -asV007 -p1179 -(lp1180 -I730 -asV006 -p1181 -(lp1182 -I723 -asV005 -p1183 -(lp1184 -I738 -asVvigenere -p1185 -(lp1186 -I439 -asVclimbing -p1187 -(lp1188 -I376 -asVvalidate -p1189 -(lp1190 -I655 -asVphp -p1191 -(lp1192 -I79 -asVeulerian -p1193 -(lp1194 -I224 -asVcycle -p1195 -(lp1196 -I235 -aI244 -aI261 -aI530 -aI560 -asV025 -p1197 -(lp1198 -I732 -asVfourier -p1199 -(lp1200 -I426 -asVlucas -p1201 -(lp1202 -I363 -asV024 -p1203 -(lp1204 -I724 -asVbuilder -p1205 -(lp1206 -I308 -aI309 -aI309 -aI311 -asVlapindrom -p1207 -(lp1208 -I115 -asVanalysis -p1209 -(lp1210 -I271 -aI272 -aI274 -aI276 -aI791 -asVdouble -p1211 -(lp1212 -I642 -asVpatterns -p1213 -(lp1214 -I283 -aI284 -aI285 -aI291 -aI292 -aI295 -aI304 -aI306 -aI308 -asVedge -p1215 -(lp1216 -I243 -asVsolve -p1217 -(lp1218 -I803 -asVgreatest -p1219 -(lp1220 -I401 -asVcomponents -p1221 -(lp1222 -I245 -aI260 -aI268 -aI270 -asVrunningkey -p1223 -(lp1224 -I451 -asV021 -p1225 -(lp1226 -I725 -asVthe -p1227 -(lp1228 -I120 -asVleft -p1229 -(lp1230 -I120 -aI237 -aI586 -aI595 -asVtarjan -p1231 -(lp1232 -I268 -asVstooge -p1233 -(lp1234 -I529 -asVnewton -p1235 -(lp1236 -I390 -aI407 -asVisodata -p1237 -(lp1238 -I776 -asVsobelfilter -p1239 -(lp1240 -I783 -asVlossy -p1241 -(lp1242 -I491 -asVinteger -p1243 -(lp1244 -I354 -aI396 -aI461 -asVhuffman -p1245 -(lp1246 -I134 -aI449 -aI486 -aI490 -asVguides -p1247 -(lp1248 -I24 -aI25 -aI25 -aI26 -aI30 -aI34 -aI38 -aI42 -aI46 -aI48 -aI52 -aI56 -aI60 -aI64 -aI68 -aI72 -aI76 -asVdivide -p1249 -(lp1250 -I492 -aI493 -aI494 -aI495 -aI496 -aI496 -aI497 -aI498 -aI499 -aI500 -aI501 -aI502 -aI503 -aI504 -aI505 -asVcut -p1251 -(lp1252 -I157 -aI220 -aI227 -aI253 -asVdining -p1253 -(lp1254 -I331 -asVadd -p1255 -(lp1256 -I398 -asVtheorem -p1257 -(lp1258 -I363 -aI423 -asVinput -p1259 -(lp1260 -I96 -asVtransformation -p1261 -(lp1262 -I217 -aI252 -asVeuler -p1263 -(lp1264 -I267 -aI391 -aI716 -aI717 -aI718 -aI719 -aI720 -aI721 -aI722 -aI723 -aI724 -aI725 -aI726 -aI727 -aI728 -aI729 -aI730 -aI731 -aI732 -aI733 -aI734 -aI735 -aI736 -aI737 -aI738 -aI739 -aI740 -aI741 -aI742 -aI743 -aI744 -aI745 -asVtests -p1265 -(lp1266 -I94 -aI95 -aI96 -aI350 -aI351 -aI352 -aI353 -asVmarch -p1267 -(lp1268 -I672 -asVchecking -p1269 -(lp1270 -I236 -asVcatalan -p1271 -(lp1272 -I369 -asVgame -p1273 -(lp1274 -I145 -aI748 -aI749 -aI750 -aI750 -aI751 -aI752 -aI752 -asVrotate -p1275 -(lp1276 -I562 -asVsequencing -p1277 -(lp1278 -I136 -asVfalcon -p1279 -(lp1280 -I0 -asVuncrustify -p1281 -(lp1282 -I23 -aI94 -aI95 -aI96 -asVunique -p1283 -(lp1284 -I113 -aI464 -aI474 -asVbabylonian -p1285 -(lp1286 -I411 -asVloss -p1287 -(lp1288 -I750 -asVsorting -p1289 -(lp1290 -I506 -aI507 -aI508 -aI509 -aI510 -aI511 -aI512 -aI513 -aI514 -aI515 -aI516 -aI517 -aI518 -aI519 -aI520 -aI521 -aI522 -aI523 -aI524 -aI525 -aI526 -aI527 -aI528 -aI529 -aI530 -aI531 -aI532 -aI533 -asVedit -p1291 -(lp1292 -I190 -asVboolean -p1293 -(lp1294 -I182 -asVt -p1295 -(lp1296 -I227 -aI777 -asVoutput -p1297 -(lp1298 -I95 -asVtower -p1299 -(lp1300 -I346 -asVsoft -p1301 -(lp1302 -I571 -asVpythagorean -p1303 -(lp1304 -I404 -asVmathematical -p1305 -(lp1306 -I338 -aI339 -aI340 -aI341 -aI342 -aI343 -aI344 -aI345 -aI346 -aI347 -aI348 -aI349 -aI350 -aI354 -aI355 -aI356 -aI357 -aI358 -aI359 -aI360 -aI361 -aI362 -aI363 -aI364 -aI365 -aI366 -aI367 -aI368 -aI369 -aI370 -aI371 -aI372 -aI373 -aI374 -aI375 -aI376 -aI377 -aI378 -aI387 -aI388 -aI389 -aI390 -aI391 -aI392 -aI393 -aI395 -aI396 -aI397 -aI398 -aI399 -aI400 -aI401 -aI402 -aI403 -aI404 -aI405 -aI406 -aI407 -aI408 -aI409 -aI410 -aI411 -aI412 -aI413 -aI414 -aI415 -aI416 -aI417 -aI418 -aI419 -aI420 -aI421 -aI422 -aI423 -aI424 -aI425 -aI426 -aI427 -aI428 -asVclipping -p1307 -(lp1308 -I665 -asVright -p1309 -(lp1310 -I587 -aI589 -asVneumann -p1311 -(lp1312 -I146 -asVsequence -p1313 -(lp1314 -I187 -aI201 -aI770 -aI771 -asVhalfplane -p1315 -(lp1316 -I670 -asVmirror -p1317 -(lp1318 -I606 -asVhierachical-clustering -p1319 -(lp1320 -I792 -asVmatching -p1321 -(lp1322 -I223 -aI229 -asVamicable -p1323 -(lp1324 -I425 -asVwarnock -p1325 -(lp1326 -I497 -asVnondeterministic -p1327 -(lp1328 -I431 -asVfor -p1329 -(lp1330 -I333 -aI334 -asVscala -p1331 -(lp1332 -I379 -aI380 -aI381 -aI382 -aI383 -aI385 -aI386 -asVdecision -p1333 -(lp1334 -I760 -asVjaccard -p1335 -(lp1336 -I110 -asV.github -p1337 -(lp1338 -I20 -asVleap -p1339 -(lp1340 -I111 -asVdecomposition -p1341 -(lp1342 -I250 -aI795 -aI796 -aI797 -aI798 -asVkmp -p1343 -(lp1344 -I700 -asVhoughtransform -p1345 -(lp1346 -I785 -asVshaker -p1347 -(lp1348 -I528 -asVpower -p1349 -(lp1350 -I393 -aI394 -aI476 -aI501 -asVtour -p1351 -(lp1352 -I805 -asVkruskal -p1353 -(lp1354 -I125 -aI131 -aI228 -asVprocessing -p1355 -(lp1356 -I781 -aI782 -aI783 -aI784 -aI785 -aI786 -aI788 -asVbinomial -p1357 -(lp1358 -I183 -aI345 -aI575 -asVelixir -p1359 -(lp1360 -I26 -aI27 -aI28 -aI29 -aI78 -asVanagram -p1361 -(lp1362 -I691 -asVfermat -p1363 -(lp1364 -I352 -asVby -p1365 -(lp1366 -I394 -asV040 -p1367 -(lp1368 -I744 -asVon -p1369 -(lp1370 -I687 -asVgnome -p1371 -(lp1372 -I513 -asVof -p1373 -(lp1374 -I106 -aI145 -aI194 -aI234 -aI343 -aI344 -aI346 -aI357 -aI362 -aI365 -aI368 -aI405 -aI429 -aI430 -aI431 -aI432 -aI476 -aI502 -aI662 -aI669 -aI750 -aI752 -aI807 -aI809 -aI812 -aI814 -asVunclassified -p1375 -(lp1376 -I100 -aI101 -aI102 -aI103 -aI104 -aI105 -aI106 -aI107 -aI108 -aI109 -aI110 -aI111 -aI112 -aI113 -aI114 -aI115 -aI116 -aI117 -aI118 -aI119 -aI120 -aI121 -aI122 -aI556 -asVstrassen -p1377 -(lp1378 -I500 -asVneighbor -p1379 -(lp1380 -I777 -asVtransitive -p1381 -(lp1382 -I226 -asVcoins -p1383 -(lp1384 -I132 -asVnsm -p1385 -(lp1386 -I771 -asVconway -p1387 -(lp1388 -I359 -asVpuzzle -p1389 -(lp1390 -I121 -aI192 -aI802 -asVintegral -p1391 -(lp1392 -I272 -aI273 -asVcpp -p1393 -(lp1394 -I637 -aI638 -asVhopcroft -p1395 -(lp1396 -I221 -asVpair -p1397 -(lp1398 -I502 -asVweighted -p1399 -(lp1400 -I195 -asVdetermine -p1401 -(lp1402 -I658 -asVelementary -p1403 -(lp1404 -I144 -asVnext -p1405 -(lp1406 -I355 -aI752 -asVutility -p1407 -(lp1408 -I167 -aI168 -aI169 -aI171 -aI172 -asVclustering -p1409 -(lp1410 -I756 -aI776 -asVvan -p1411 -(lp1412 -I580 -aI612 -asVlog -p1413 -(lp1414 -I343 -asVarea -p1415 -(lp1416 -I662 -aI669 -asVsegment -p1417 -(lp1418 -I624 -aI626 -asVsupport -p1419 -(lp1420 -I769 -asVpairing -p1421 -(lp1422 -I570 -asVspiral -p1423 -(lp1424 -I102 -aI114 -asVfast -p1425 -(lp1426 -I364 -aI426 -asVlonely -p1427 -(lp1428 -I461 -asVfraction -p1429 -(lp1430 -I138 -asVconways -p1431 -(lp1432 -I145 -asVbiggest -p1433 -(lp1434 -I106 -aI112 -asVmaze -p1435 -(lp1436 -I804 -aI812 -asVbubble -p1437 -(lp1438 -I520 -asVeratosthenes -p1439 -(lp1440 -I362 -aI365 -asVatkin -p1441 -(lp1442 -I357 -asVdifferences -p1443 -(lp1444 -I414 -asVford -p1445 -(lp1446 -I219 -aI251 -asVphilosophers -p1447 -(lp1448 -I331 -asVbayes -p1449 -(lp1450 -I761 -aI768 -asVended -p1451 -(lp1452 -I642 -asVheap -p1453 -(lp1454 -I518 -aI569 -aI570 -aI570 -aI571 -aI571 -aI572 -aI574 -aI574 -aI575 -aI575 -aI576 -aI576 -asVelimination -p1455 -(lp1456 -I378 -aI379 -aI384 -asVline -p1457 -(lp1458 -I668 -aI673 -asVwith -p1459 -(lp1460 -I107 -aI374 -asVcount -p1461 -(lp1462 -I234 -aI348 -aI372 -aI473 -aI499 -asVpartitioning -p1463 -(lp1464 -I621 -aI622 -aI623 -aI624 -aI625 -asVbucket -p1465 -(lp1466 -I515 -asVmaximum -p1467 -(lp1468 -I180 -aI184 -aI194 -aI219 -aI223 -aI229 -aI243 -aI246 -aI475 -aI495 -aI598 -asVkuhn -p1469 -(lp1470 -I223 -asVsteepest -p1471 -(lp1472 -I420 -asVhorner -p1473 -(lp1474 -I389 -asVcosmos -p1475 -(lp1476 -I0 -aI1 -aI2 -aI3 -aI20 -aI21 -aI22 -aI24 -aI99 -asVz -p1477 -(lp1478 -I694 -asVrust -p1479 -(lp1480 -I48 -aI49 -aI50 -aI51 -aI87 -asVdelete -p1481 -(lp1482 -I565 -asVstrongly -p1483 -(lp1484 -I260 -aI268 -asVzeroes -p1485 -(lp1486 -I372 -asVinterval -p1487 -(lp1488 -I623 -asVmoore -p1489 -(lp1490 -I701 -asVarmstrong -p1491 -(lp1492 -I428 -asVtrie -p1493 -(lp1494 -I579 -aI683 -asVflow -p1495 -(lp1496 -I219 -aI246 -asVabstract -p1497 -(lp1498 -I636 -aI637 -asVtournament -p1499 -(lp1500 -I498 -asVlineclip -p1501 -(lp1502 -I674 -asVsingly -p1503 -(lp1504 -I554 -aI555 -asVan -p1505 -(lp1506 -I154 -asVautoenncoder -p1507 -(lp1508 -I765 -asVintro -p1509 -(lp1510 -I527 -asVrule -p1511 -(lp1512 -I377 -asVpip -p1513 -(lp1514 -I46 -aI47 -asVtiling -p1515 -(lp1516 -I197 -asVtrailing -p1517 -(lp1518 -I372 -asVcheck -p1519 -(lp1520 -I170 -aI173 -aI222 -aI418 -asVfill -p1521 -(lp1522 -I109 -asVmutual -p1523 -(lp1524 -I333 -aI334 -asVparadox -p1525 -(lp1526 -I156 -asVpolygon -p1527 -(lp1528 -I202 -aI669 -asVno -p1529 -(lp1530 -I116 -aI207 -asVfenwick -p1531 -(lp1532 -I616 -asVforests -p1533 -(lp1534 -I789 -asVvirtual -p1535 -(lp1536 -I286 -aI287 -asVother -p1537 -(lp1538 -I651 -asV5 -p1539 -(lp1540 -I374 -asVdigital -p1541 -(lp1542 -I448 -asVtest -p1543 -(lp1544 -I351 -aI352 -aI353 -aI671 -asVarithmetic -p1545 -(lp1546 -I687 -asVnode -p1547 -(lp1548 -I159 -aI563 -aI599 -asVstar -p1549 -(lp1550 -I778 -asVpalindromic -p1551 -(lp1552 -I186 -aI187 -asVkerbosch -p1553 -(lp1554 -I264 -asVvertex -p1555 -(lp1556 -I241 -asVutilities -p1557 -(lp1558 -I118 -asVpolynomials -p1559 -(lp1560 -I398 -asVgifts -p1561 -(lp1562 -I307 -asVpush -p1563 -(lp1564 -I557 -asVunion -p1565 -(lp1566 -I545 -aI614 -asVmatrix -p1567 -(lp1568 -I184 -aI211 -aI217 -aI239 -aI252 -aI424 -aI500 -asVsudoku -p1569 -(lp1570 -I803 -asVlcm -p1571 -(lp1572 -I347 -asValgorithm -p1573 -(lp1574 -I147 -aI152 -aI157 -aI221 -aI233 -aI242 -aI251 -aI264 -aI265 -aI267 -aI268 -aI317 -aI333 -aI334 -aI334 -aI497 -aI666 -aI682 -aI690 -aI694 -aI696 -aI698 -aI700 -aI701 -aI798 -asVbottom -p1575 -(lp1576 -I604 -asVbankers -p1577 -(lp1578 -I317 -asVdaily -p1579 -(lp1580 -I296 -aI297 -asVdepth -p1581 -(lp1582 -I263 -asVsegmented -p1583 -(lp1584 -I362 -asVternary -p1585 -(lp1586 -I705 -asVtime -p1587 -(lp1588 -I323 -aI326 -asVdinic -p1589 -(lp1590 -I246 -asVhillclimber -p1591 -(lp1592 -I129 -asVminimax -p1593 -(lp1594 -I774 -asVserializer -p1595 -(lp1596 -I607 -as. \ No newline at end of file diff --git a/build/lib/dumps/category.json b/build/lib/dumps/category.json deleted file mode 100755 index 7984054..0000000 --- a/build/lib/dumps/category.json +++ /dev/null @@ -1 +0,0 @@ -[{"category": "cosmos", "description": "falcon cosmos", "location": ""}, {"category": "test", "description": "cosmos", "location": "/test"}, {"category": "c++", "description": "cosmos c++", "location": "/test/c++"}, {"category": ".git", "description": "cosmos .git", "location": "/.git"}, {"category": "objects", "description": ".git objects", "location": "/.git/objects"}, {"category": "info", "description": "objects info", "location": "/.git/objects/info"}, {"category": "pack", "description": "objects pack", "location": "/.git/objects/pack"}, {"category": "hooks", "description": ".git hooks", "location": "/.git/hooks"}, {"category": "refs", "description": ".git refs", "location": "/.git/refs"}, {"category": "remotes", "description": "refs remotes", "location": "/.git/refs/remotes"}, {"category": "origin", "description": "remotes origin", "location": "/.git/refs/remotes/origin"}, {"category": "tags", "description": "refs tags", "location": "/.git/refs/tags"}, {"category": "heads", "description": "refs heads", "location": "/.git/refs/heads"}, {"category": "branches", "description": ".git branches", "location": "/.git/branches"}, {"category": "info", "description": ".git info", "location": "/.git/info"}, {"category": "logs", "description": ".git logs", "location": "/.git/logs"}, {"category": "refs", "description": "logs refs", "location": "/.git/logs/refs"}, {"category": "remotes", "description": "refs remotes", "location": "/.git/logs/refs/remotes"}, {"category": "origin", "description": "remotes origin", "location": "/.git/logs/refs/remotes/origin"}, {"category": "heads", "description": "refs heads", "location": "/.git/logs/refs/heads"}, {"category": ".github", "description": "cosmos .github", "location": "/.github"}, {"category": "scripts", "description": "cosmos scripts", "location": "/scripts"}, {"category": "third party", "description": "cosmos third party", "location": "/third_party"}, {"category": "uncrustify", "description": "third party uncrustify", "location": "/third_party/uncrustify"}, {"category": "guides", "description": "cosmos guides", "location": "/guides"}, {"category": "installation guides", "description": "guides installation guides", "location": "/guides/installation_guides"}, {"category": "elixir", "description": "installation guides elixir", "location": "/guides/installation_guides/elixir"}, {"category": "linux", "description": "elixir linux", "location": "/guides/installation_guides/elixir/linux"}, {"category": "mac", "description": "elixir mac", "location": "/guides/installation_guides/elixir/mac"}, {"category": "windows", "description": "elixir windows", "location": "/guides/installation_guides/elixir/windows"}, {"category": "kotlin", "description": "installation guides kotlin", "location": "/guides/installation_guides/kotlin"}, {"category": "linux", "description": "kotlin linux", "location": "/guides/installation_guides/kotlin/linux"}, {"category": "mac", "description": "kotlin mac", "location": "/guides/installation_guides/kotlin/mac"}, {"category": "windows", "description": "kotlin windows", "location": "/guides/installation_guides/kotlin/windows"}, {"category": "ruby", "description": "installation guides ruby", "location": "/guides/installation_guides/ruby"}, {"category": "linux", "description": "ruby linux", "location": "/guides/installation_guides/ruby/linux"}, {"category": "mac", "description": "ruby mac", "location": "/guides/installation_guides/ruby/mac"}, {"category": "windows", "description": "ruby windows", "location": "/guides/installation_guides/ruby/windows"}, {"category": "c", "description": "installation guides c", "location": "/guides/installation_guides/c"}, {"category": "linux", "description": "c linux", "location": "/guides/installation_guides/c/linux"}, {"category": "mac", "description": "c mac", "location": "/guides/installation_guides/c/mac"}, {"category": "windows", "description": "c windows", "location": "/guides/installation_guides/c/windows"}, {"category": "python", "description": "installation guides python", "location": "/guides/installation_guides/python"}, {"category": "linux", "description": "python linux", "location": "/guides/installation_guides/python/linux"}, {"category": "mac", "description": "python mac", "location": "/guides/installation_guides/python/mac"}, {"category": "windows", "description": "python windows", "location": "/guides/installation_guides/python/windows"}, {"category": "python pip", "description": "installation guides python pip", "location": "/guides/installation_guides/python_pip"}, {"category": "linux", "description": "python pip linux", "location": "/guides/installation_guides/python_pip/linux"}, {"category": "rust", "description": "installation guides rust", "location": "/guides/installation_guides/rust"}, {"category": "linux", "description": "rust linux", "location": "/guides/installation_guides/rust/linux"}, {"category": "mac", "description": "rust mac", "location": "/guides/installation_guides/rust/mac"}, {"category": "windows", "description": "rust windows", "location": "/guides/installation_guides/rust/windows"}, {"category": "swift", "description": "installation guides swift", "location": "/guides/installation_guides/swift"}, {"category": "linux", "description": "swift linux", "location": "/guides/installation_guides/swift/linux"}, {"category": "mac", "description": "swift mac", "location": "/guides/installation_guides/swift/mac"}, {"category": "windows", "description": "swift windows", "location": "/guides/installation_guides/swift/windows"}, {"category": "javascript", "description": "installation guides javascript", "location": "/guides/installation_guides/javascript"}, {"category": "linux", "description": "javascript linux", "location": "/guides/installation_guides/javascript/linux"}, {"category": "mac", "description": "javascript mac", "location": "/guides/installation_guides/javascript/mac"}, {"category": "windows", "description": "javascript windows", "location": "/guides/installation_guides/javascript/windows"}, {"category": "java", "description": "installation guides java", "location": "/guides/installation_guides/java"}, {"category": "linux", "description": "java linux", "location": "/guides/installation_guides/java/linux"}, {"category": "mac", "description": "java mac", "location": "/guides/installation_guides/java/mac"}, {"category": "windows", "description": "java windows", "location": "/guides/installation_guides/java/windows"}, {"category": "c++", "description": "installation guides c++", "location": "/guides/installation_guides/c++"}, {"category": "linux", "description": "c++ linux", "location": "/guides/installation_guides/c++/linux"}, {"category": "mac", "description": "c++ mac", "location": "/guides/installation_guides/c++/mac"}, {"category": "windows", "description": "c++ windows", "location": "/guides/installation_guides/c++/windows"}, {"category": "go", "description": "installation guides go", "location": "/guides/installation_guides/go"}, {"category": "linux", "description": "go linux", "location": "/guides/installation_guides/go/linux"}, {"category": "mac", "description": "go mac", "location": "/guides/installation_guides/go/mac"}, {"category": "windows", "description": "go windows", "location": "/guides/installation_guides/go/windows"}, {"category": "pascal", "description": "installation guides pascal", "location": "/guides/installation_guides/pascal"}, {"category": "linux", "description": "pascal linux", "location": "/guides/installation_guides/pascal/linux"}, {"category": "mac", "description": "pascal mac", "location": "/guides/installation_guides/pascal/mac"}, {"category": "windows", "description": "pascal windows", "location": "/guides/installation_guides/pascal/windows"}, {"category": "coding style", "description": "guides coding style", "location": "/guides/coding_style"}, {"category": "typescript", "description": "coding style typescript", "location": "/guides/coding_style/typescript"}, {"category": "elixir", "description": "coding style elixir", "location": "/guides/coding_style/elixir"}, {"category": "php", "description": "coding style php", "location": "/guides/coding_style/php"}, {"category": "kotlin", "description": "coding style kotlin", "location": "/guides/coding_style/kotlin"}, {"category": "ruby", "description": "coding style ruby", "location": "/guides/coding_style/ruby"}, {"category": "ml", "description": "coding style ml", "location": "/guides/coding_style/ml"}, {"category": "perl", "description": "coding style perl", "location": "/guides/coding_style/perl"}, {"category": "f#", "description": "coding style f#", "location": "/guides/coding_style/f#"}, {"category": "c", "description": "coding style c", "location": "/guides/coding_style/c"}, {"category": "python", "description": "coding style python", "location": "/guides/coding_style/python"}, {"category": "rust", "description": "coding style rust", "location": "/guides/coding_style/rust"}, {"category": "lisp", "description": "coding style lisp", "location": "/guides/coding_style/lisp"}, {"category": "c#", "description": "coding style c#", "location": "/guides/coding_style/c#"}, {"category": "swift", "description": "coding style swift", "location": "/guides/coding_style/swift"}, {"category": "javascript", "description": "coding style javascript", "location": "/guides/coding_style/javascript"}, {"category": "java", "description": "coding style java", "location": "/guides/coding_style/java"}, {"category": "c++", "description": "coding style c++", "location": "/guides/coding_style/c++"}, {"category": "uncrustify tests", "description": "c++ uncrustify tests", "location": "/guides/coding_style/c++/uncrustify_tests"}, {"category": "output", "description": "uncrustify tests output", "location": "/guides/coding_style/c++/uncrustify_tests/output"}, {"category": "input", "description": "uncrustify tests input", "location": "/guides/coding_style/c++/uncrustify_tests/input"}, {"category": "go", "description": "coding style go", "location": "/guides/coding_style/go"}, {"category": "pascal", "description": "coding style pascal", "location": "/guides/coding_style/pascal"}, {"category": "code", "description": "cosmos code", "location": "/code"}, {"category": "unclassified", "description": "code unclassified", "location": "/code/unclassified"}, {"category": "test", "description": "unclassified", "location": "/code/unclassified/test"}, {"category": "spiral printing", "description": "unclassified spiral printing", "location": "/code/unclassified/test/spiral_printing"}, {"category": "src", "description": "unclassified", "location": "/code/unclassified/src"}, {"category": "majority element", "description": "unclassified majority element", "location": "/code/unclassified/src/majority_element"}, {"category": "tokenizer", "description": "unclassified tokenizer", "location": "/code/unclassified/src/tokenizer"}, {"category": "biggest of n numbers", "description": "unclassified biggest of n numbers", "location": "/code/unclassified/src/biggest_of_n_numbers"}, {"category": "minimum subarray size with degree", "description": "unclassified minimum subarray size with degree", "location": "/code/unclassified/src/minimum_subarray_size_with_degree"}, {"category": "josephus problem", "description": "unclassified josephus problem", "location": "/code/unclassified/src/josephus_problem"}, {"category": "paint fill", "description": "unclassified paint fill", "location": "/code/unclassified/src/paint_fill"}, {"category": "jaccard similarity", "description": "unclassified jaccard similarity", "location": "/code/unclassified/src/jaccard_similarity"}, {"category": "leap year", "description": "unclassified leap year", "location": "/code/unclassified/src/leap_year"}, {"category": "biggest suffix", "description": "unclassified biggest suffix", "location": "/code/unclassified/src/biggest_suffix"}, {"category": "unique number", "description": "unclassified unique number", "location": "/code/unclassified/src/unique_number"}, {"category": "spiral print", "description": "unclassified spiral print", "location": "/code/unclassified/src/spiral_print"}, {"category": "lapindrom checker", "description": "unclassified lapindrom checker", "location": "/code/unclassified/src/lapindrom_checker"}, {"category": "no operator addition", "description": "unclassified no operator addition", "location": "/code/unclassified/src/no_operator_addition"}, {"category": "average", "description": "unclassified average", "location": "/code/unclassified/src/average"}, {"category": "utilities", "description": "unclassified utilities", "location": "/code/unclassified/src/utilities"}, {"category": "magic square", "description": "unclassified magic square", "location": "/code/unclassified/src/magic_square"}, {"category": "smallest number to the left", "description": "unclassified smallest number to the left", "location": "/code/unclassified/src/smallest_number_to_the_left"}, {"category": "fifteen puzzle", "description": "unclassified fifteen puzzle", "location": "/code/unclassified/src/fifteen_puzzle"}, {"category": "split list", "description": "unclassified split list", "location": "/code/unclassified/src/split_list"}, {"category": "greedy algorithms", "description": "code greedy algorithms", "location": "/code/greedy_algorithms"}, {"category": "test", "description": "greedy algorithms", "location": "/code/greedy_algorithms/test"}, {"category": "kruskal minimum spanning tree", "description": "greedy algorithms kruskal minimum spanning tree", "location": "/code/greedy_algorithms/test/kruskal_minimum_spanning_tree"}, {"category": "src", "description": "greedy algorithms", "location": "/code/greedy_algorithms/src"}, {"category": "fractional knapsack", "description": "greedy algorithms fractional knapsack", "location": "/code/greedy_algorithms/src/fractional_knapsack"}, {"category": "activity selection", "description": "greedy algorithms activity selection", "location": "/code/greedy_algorithms/src/activity_selection"}, {"category": "hillclimber", "description": "greedy algorithms hillclimber", "location": "/code/greedy_algorithms/src/hillclimber"}, {"category": "warshall", "description": "greedy algorithms warshall", "location": "/code/greedy_algorithms/src/warshall"}, {"category": "kruskal minimum spanning tree", "description": "greedy algorithms kruskal minimum spanning tree", "location": "/code/greedy_algorithms/src/kruskal_minimum_spanning_tree"}, {"category": "minimum coins", "description": "greedy algorithms minimum coins", "location": "/code/greedy_algorithms/src/minimum_coins"}, {"category": "prim minimum spanning tree", "description": "greedy algorithms prim minimum spanning tree", "location": "/code/greedy_algorithms/src/prim_minimum_spanning_tree"}, {"category": "huffman coding", "description": "greedy algorithms huffman coding", "location": "/code/greedy_algorithms/src/huffman_coding"}, {"category": "k centers", "description": "greedy algorithms k centers", "location": "/code/greedy_algorithms/src/k_centers"}, {"category": "job sequencing", "description": "greedy algorithms job sequencing", "location": "/code/greedy_algorithms/src/job_sequencing"}, {"category": "dijkstra shortest path", "description": "greedy algorithms dijkstra shortest path", "location": "/code/greedy_algorithms/src/dijkstra_shortest_path"}, {"category": "egyptian fraction", "description": "greedy algorithms egyptian fraction", "location": "/code/greedy_algorithms/src/egyptian_fraction"}, {"category": "cellular automaton", "description": "code cellular automaton", "location": "/code/cellular_automaton"}, {"category": "test", "description": "cellular automaton", "location": "/code/cellular_automaton/test"}, {"category": "src", "description": "cellular automaton", "location": "/code/cellular_automaton/src"}, {"category": "brians brain", "description": "cellular automaton brians brain", "location": "/code/cellular_automaton/src/brians_brain"}, {"category": "langtons ant", "description": "cellular automaton langtons ant", "location": "/code/cellular_automaton/src/langtons_ant"}, {"category": "elementary cellular automata", "description": "cellular automaton elementary cellular automata", "location": "/code/cellular_automaton/src/elementary_cellular_automata"}, {"category": "conways game of life", "description": "cellular automaton conways game of life", "location": "/code/cellular_automaton/src/conways_game_of_life"}, {"category": "von neumann cellular automata", "description": "cellular automaton von neumann cellular automata", "location": "/code/cellular_automaton/src/von_neumann_cellular_automata"}, {"category": "genetic algorithm", "description": "cellular automaton genetic algorithm", "location": "/code/cellular_automaton/src/genetic_algorithm"}, {"category": "nobili cellular automata", "description": "cellular automaton nobili cellular automata", "location": "/code/cellular_automaton/src/nobili_cellular_automata"}, {"category": "randomized algorithms", "description": "code randomized algorithms", "location": "/code/randomized_algorithms"}, {"category": "test", "description": "randomized algorithms", "location": "/code/randomized_algorithms/test"}, {"category": "src", "description": "randomized algorithms", "location": "/code/randomized_algorithms/src"}, {"category": "kth smallest element algorithm", "description": "randomized algorithms kth smallest element algorithm", "location": "/code/randomized_algorithms/src/kth_smallest_element_algorithm"}, {"category": "randomized quick sort", "description": "randomized algorithms randomized quick sort", "location": "/code/randomized_algorithms/src/randomized_quick_sort"}, {"category": "shuffle an array", "description": "randomized algorithms shuffle an array", "location": "/code/randomized_algorithms/src/shuffle_an_array"}, {"category": "random from stream", "description": "randomized algorithms random from stream", "location": "/code/randomized_algorithms/src/random_from_stream"}, {"category": "birthday paradox", "description": "randomized algorithms birthday paradox", "location": "/code/randomized_algorithms/src/birthday_paradox"}, {"category": "karger minimum cut algorithm", "description": "randomized algorithms karger minimum cut algorithm", "location": "/code/randomized_algorithms/src/karger_minimum_cut_algorithm"}, {"category": "reservoir sampling", "description": "randomized algorithms reservoir sampling", "location": "/code/randomized_algorithms/src/reservoir_sampling"}, {"category": "random node linkedlist", "description": "randomized algorithms random node linkedlist", "location": "/code/randomized_algorithms/src/random_node_linkedlist"}, {"category": "computer graphics", "description": "code computer graphics", "location": "/code/computer_graphics"}, {"category": "src", "description": "computer graphics", "location": "/code/computer_graphics/src"}, {"category": "diamond square", "description": "computer graphics diamond square", "location": "/code/computer_graphics/src/diamond_square"}, {"category": "selection algorithms", "description": "code selection algorithms", "location": "/code/selection_algorithms"}, {"category": "test", "description": "selection algorithms", "location": "/code/selection_algorithms/test"}, {"category": "src", "description": "selection algorithms", "location": "/code/selection_algorithms/src"}, {"category": "median-of-medians", "description": "selection algorithms median-of-medians", "location": "/code/selection_algorithms/src/median-of-medians"}, {"category": "utility", "description": "code utility", "location": "/code/utility"}, {"category": "test", "description": "utility", "location": "/code/utility/test"}, {"category": "palindrome", "description": "utility palindrome", "location": "/code/utility/test/palindrome"}, {"category": "palindrome check", "description": "palindrome palindrome check", "location": "/code/utility/test/palindrome/palindrome_check"}, {"category": "src", "description": "utility", "location": "/code/utility/src"}, {"category": "palindrome", "description": "utility palindrome", "location": "/code/utility/src/palindrome"}, {"category": "palindrome check", "description": "palindrome palindrome check", "location": "/code/utility/src/palindrome/palindrome_check"}, {"category": "dynamic programming", "description": "code dynamic programming", "location": "/code/dynamic_programming"}, {"category": "test", "description": "dynamic programming", "location": "/code/dynamic_programming/test"}, {"category": "longest repeating subsequence", "description": "dynamic programming longest repeating subsequence", "location": "/code/dynamic_programming/test/longest_repeating_subsequence"}, {"category": "subset sum", "description": "dynamic programming subset sum", "location": "/code/dynamic_programming/test/subset_sum"}, {"category": "src", "description": "dynamic programming", "location": "/code/dynamic_programming/src"}, {"category": "min cost path", "description": "dynamic programming min cost path", "location": "/code/dynamic_programming/src/min_cost_path"}, {"category": "maximum sum increasing subsequence", "description": "dynamic programming maximum sum increasing subsequence", "location": "/code/dynamic_programming/src/maximum_sum_increasing_subsequence"}, {"category": "palindrome partition", "description": "dynamic programming palindrome partition", "location": "/code/dynamic_programming/src/palindrome_partition"}, {"category": "boolean parenthesization", "description": "dynamic programming boolean parenthesization", "location": "/code/dynamic_programming/src/boolean_parenthesization"}, {"category": "binomial coefficient", "description": "dynamic programming binomial coefficient", "location": "/code/dynamic_programming/src/binomial_coefficient"}, {"category": "maximum sum sub matrix", "description": "dynamic programming maximum sum sub matrix", "location": "/code/dynamic_programming/src/maximum_sum_sub_matrix"}, {"category": "rod cutting", "description": "dynamic programming rod cutting", "location": "/code/dynamic_programming/src/rod_cutting"}, {"category": "longest palindromic substring", "description": "dynamic programming longest palindromic substring", "location": "/code/dynamic_programming/src/longest_palindromic_substring"}, {"category": "longest palindromic sequence", "description": "dynamic programming longest palindromic sequence", "location": "/code/dynamic_programming/src/longest_palindromic_sequence"}, {"category": "longest repeating subsequence", "description": "dynamic programming longest repeating subsequence", "location": "/code/dynamic_programming/src/longest_repeating_subsequence"}, {"category": "box stacking", "description": "dynamic programming box stacking", "location": "/code/dynamic_programming/src/box_stacking"}, {"category": "edit distance", "description": "dynamic programming edit distance", "location": "/code/dynamic_programming/src/edit_distance"}, {"category": "Array Median", "description": "dynamic programming Array Median", "location": "/code/dynamic_programming/src/Array_Median"}, {"category": "egg dropping puzzle", "description": "dynamic programming egg dropping puzzle", "location": "/code/dynamic_programming/src/egg_dropping_puzzle"}, {"category": "longest independent set", "description": "dynamic programming longest independent set", "location": "/code/dynamic_programming/src/longest_independent_set"}, {"category": "maximum weight independent set of path graph", "description": "dynamic programming maximum weight independent set of path graph", "location": "/code/dynamic_programming/src/maximum_weight_independent_set_of_path_graph"}, {"category": "weighted job scheduling", "description": "dynamic programming weighted job scheduling", "location": "/code/dynamic_programming/src/weighted_job_scheduling"}, {"category": "Optimal Binary Search Tree", "description": "dynamic programming Optimal Binary Search Tree", "location": "/code/dynamic_programming/src/Optimal_Binary_Search_Tree"}, {"category": "tiling problem", "description": "dynamic programming tiling problem", "location": "/code/dynamic_programming/src/tiling_problem"}, {"category": "longest common substring", "description": "dynamic programming longest common substring", "location": "/code/dynamic_programming/src/longest_common_substring"}, {"category": "longest increasing subsequence", "description": "dynamic programming longest increasing subsequence", "location": "/code/dynamic_programming/src/longest_increasing_subsequence"}, {"category": "shortest common supersequence", "description": "dynamic programming shortest common supersequence", "location": "/code/dynamic_programming/src/shortest_common_supersequence"}, {"category": "longest bitonic sequence", "description": "dynamic programming longest bitonic sequence", "location": "/code/dynamic_programming/src/longest_bitonic_sequence"}, {"category": "minimum cost polygon triangulation", "description": "dynamic programming minimum cost polygon triangulation", "location": "/code/dynamic_programming/src/minimum_cost_polygon_triangulation"}, {"category": "knapsack", "description": "dynamic programming knapsack", "location": "/code/dynamic_programming/src/knapsack"}, {"category": "subset sum", "description": "dynamic programming subset sum", "location": "/code/dynamic_programming/src/subset_sum"}, {"category": "coin change", "description": "dynamic programming coin change", "location": "/code/dynamic_programming/src/coin_change"}, {"category": "digit dp", "description": "dynamic programming digit dp", "location": "/code/dynamic_programming/src/digit_dp"}, {"category": "no consec ones", "description": "dynamic programming no consec ones", "location": "/code/dynamic_programming/src/no_consec_ones"}, {"category": "largest sum contiguous subarray", "description": "dynamic programming largest sum contiguous subarray", "location": "/code/dynamic_programming/src/largest_sum_contiguous_subarray"}, {"category": "longest common increasing subsequence", "description": "dynamic programming longest common increasing subsequence", "location": "/code/dynamic_programming/src/longest_common_increasing_subsequence"}, {"category": "minimum insertion palindrome", "description": "dynamic programming minimum insertion palindrome", "location": "/code/dynamic_programming/src/minimum_insertion_palindrome"}, {"category": "matrix chain multiplication", "description": "dynamic programming matrix chain multiplication", "location": "/code/dynamic_programming/src/matrix_chain_multiplication"}, {"category": "numeric keypad problem", "description": "dynamic programming numeric keypad problem", "location": "/code/dynamic_programming/src/numeric_keypad_problem"}, {"category": "longest common subsequence", "description": "dynamic programming longest common subsequence", "location": "/code/dynamic_programming/src/longest_common_subsequence"}, {"category": "factorial", "description": "dynamic programming factorial", "location": "/code/dynamic_programming/src/factorial"}, {"category": "graph algorithms", "description": "code graph algorithms", "location": "/code/graph_algorithms"}, {"category": "test", "description": "graph algorithms", "location": "/code/graph_algorithms/test"}, {"category": "matrix transformation", "description": "graph algorithms matrix transformation", "location": "/code/graph_algorithms/test/matrix_transformation"}, {"category": "src", "description": "graph algorithms", "location": "/code/graph_algorithms/src"}, {"category": "ford fulkerson maximum flow", "description": "graph algorithms ford fulkerson maximum flow", "location": "/code/graph_algorithms/src/ford_fulkerson_maximum_flow"}, {"category": "cut vertices", "description": "graph algorithms cut vertices", "location": "/code/graph_algorithms/src/cut_vertices"}, {"category": "hopcroft karp algorithm", "description": "graph algorithms hopcroft karp algorithm", "location": "/code/graph_algorithms/src/hopcroft_karp_algorithm"}, {"category": "Bipartite check", "description": "graph algorithms Bipartite check", "location": "/code/graph_algorithms/src/Bipartite_check"}, {"category": "kuhn maximum matching", "description": "graph algorithms kuhn maximum matching", "location": "/code/graph_algorithms/src/kuhn_maximum_matching"}, {"category": "eulerian path", "description": "graph algorithms eulerian path", "location": "/code/graph_algorithms/src/eulerian_path"}, {"category": "channel assignment", "description": "graph algorithms channel assignment", "location": "/code/graph_algorithms/src/channel_assignment"}, {"category": "transitive closure graph", "description": "graph algorithms transitive closure graph", "location": "/code/graph_algorithms/src/transitive_closure_graph"}, {"category": "minimum s t cut", "description": "graph algorithms minimum s t cut", "location": "/code/graph_algorithms/src/minimum_s_t_cut"}, {"category": "kruskal minimum spanning tree", "description": "graph algorithms kruskal minimum spanning tree", "location": "/code/graph_algorithms/src/kruskal_minimum_spanning_tree"}, {"category": "maximum bipartite matching", "description": "graph algorithms maximum bipartite matching", "location": "/code/graph_algorithms/src/maximum_bipartite_matching"}, {"category": "prim minimum spanning tree", "description": "graph algorithms prim minimum spanning tree", "location": "/code/graph_algorithms/src/prim_minimum_spanning_tree"}, {"category": "bridge tree", "description": "graph algorithms bridge tree", "location": "/code/graph_algorithms/src/bridge_tree"}, {"category": "travelling salesman mst", "description": "graph algorithms travelling salesman mst", "location": "/code/graph_algorithms/src/travelling_salesman_mst"}, {"category": "johnson algorithm shortest path", "description": "graph algorithms johnson algorithm shortest path", "location": "/code/graph_algorithms/src/johnson_algorithm_shortest_path"}, {"category": "count of ways n", "description": "graph algorithms count of ways n", "location": "/code/graph_algorithms/src/count_of_ways_n"}, {"category": "hamiltonian cycle", "description": "graph algorithms hamiltonian cycle", "location": "/code/graph_algorithms/src/hamiltonian_cycle"}, {"category": "bipartite checking", "description": "graph algorithms bipartite checking", "location": "/code/graph_algorithms/src/bipartite_checking"}, {"category": "left view binary tree", "description": "graph algorithms left view binary tree", "location": "/code/graph_algorithms/src/left_view_binary_tree"}, {"category": "data structures", "description": "graph algorithms data structures", "location": "/code/graph_algorithms/src/data_structures"}, {"category": "adjacency matrix C", "description": "data structures adjacency matrix C", "location": "/code/graph_algorithms/src/data_structures/adjacency_matrix_C"}, {"category": "breadth first search", "description": "graph algorithms breadth first search", "location": "/code/graph_algorithms/src/breadth_first_search"}, {"category": "vertex cover", "description": "graph algorithms vertex cover", "location": "/code/graph_algorithms/src/vertex_cover"}, {"category": "floyd warshall algorithm", "description": "graph algorithms floyd warshall algorithm", "location": "/code/graph_algorithms/src/floyd_warshall_algorithm"}, {"category": "maximum edge disjoint paths", "description": "graph algorithms maximum edge disjoint paths", "location": "/code/graph_algorithms/src/maximum_edge_disjoint_paths"}, {"category": "cycle undirected graph", "description": "graph algorithms cycle undirected graph", "location": "/code/graph_algorithms/src/cycle_undirected_graph"}, {"category": "biconnected components", "description": "graph algorithms biconnected components", "location": "/code/graph_algorithms/src/biconnected_components"}, {"category": "dinic maximum flow", "description": "graph algorithms dinic maximum flow", "location": "/code/graph_algorithms/src/dinic_maximum_flow"}, {"category": "dijkstra shortest path", "description": "graph algorithms dijkstra shortest path", "location": "/code/graph_algorithms/src/dijkstra_shortest_path"}, {"category": "bridges in graph", "description": "graph algorithms bridges in graph", "location": "/code/graph_algorithms/src/bridges_in_graph"}, {"category": "boruvka minimum spanning tree", "description": "graph algorithms boruvka minimum spanning tree", "location": "/code/graph_algorithms/src/boruvka_minimum_spanning_tree"}, {"category": "centroid decomposition", "description": "graph algorithms centroid decomposition", "location": "/code/graph_algorithms/src/centroid_decomposition"}, {"category": "bellman ford algorithm", "description": "graph algorithms bellman ford algorithm", "location": "/code/graph_algorithms/src/bellman_ford_algorithm"}, {"category": "matrix transformation", "description": "graph algorithms matrix transformation", "location": "/code/graph_algorithms/src/matrix_transformation"}, {"category": "karger minimum cut", "description": "graph algorithms karger minimum cut", "location": "/code/graph_algorithms/src/karger_minimum_cut"}, {"category": "graph coloring", "description": "graph algorithms graph coloring", "location": "/code/graph_algorithms/src/graph_coloring"}, {"category": "adjacency lists graph representation", "description": "graph algorithms adjacency lists graph representation", "location": "/code/graph_algorithms/src/adjacency_lists_graph_representation"}, {"category": "adjacency lists in C", "description": "adjacency lists graph representation adjacency lists in C", "location": "/code/graph_algorithms/src/adjacency_lists_graph_representation/adjacency_lists_in_C"}, {"category": "topological sort", "description": "graph algorithms topological sort", "location": "/code/graph_algorithms/src/topological_sort"}, {"category": "shortest path k edges", "description": "graph algorithms shortest path k edges", "location": "/code/graph_algorithms/src/shortest_path_k_edges"}, {"category": "postorder from inorder and preorder", "description": "graph algorithms postorder from inorder and preorder", "location": "/code/graph_algorithms/src/postorder_from_inorder_and_preorder"}, {"category": "strongly connected components", "description": "graph algorithms strongly connected components", "location": "/code/graph_algorithms/src/strongly_connected_components"}, {"category": "cycle directed graph", "description": "graph algorithms cycle directed graph", "location": "/code/graph_algorithms/src/cycle_directed_graph"}, {"category": "hamiltonian path", "description": "graph algorithms hamiltonian path", "location": "/code/graph_algorithms/src/hamiltonian_path"}, {"category": "depth first search", "description": "graph algorithms depth first search", "location": "/code/graph_algorithms/src/depth_first_search"}, {"category": "bron kerbosch algorithm", "description": "graph algorithms bron kerbosch algorithm", "location": "/code/graph_algorithms/src/bron_kerbosch_algorithm"}, {"category": "astar algorithm", "description": "graph algorithms astar algorithm", "location": "/code/graph_algorithms/src/astar_algorithm"}, {"category": "longest path directed acyclic graph", "description": "graph algorithms longest path directed acyclic graph", "location": "/code/graph_algorithms/src/longest_path_directed_acyclic_graph"}, {"category": "fleury algorithm euler path", "description": "graph algorithms fleury algorithm euler path", "location": "/code/graph_algorithms/src/fleury_algorithm_euler_path"}, {"category": "tarjan algorithm strongly connected components", "description": "graph algorithms tarjan algorithm strongly connected components", "location": "/code/graph_algorithms/src/tarjan_algorithm_strongly_connected_components"}, {"category": "steiner tree", "description": "graph algorithms steiner tree", "location": "/code/graph_algorithms/src/steiner_tree"}, {"category": "connected components", "description": "graph algorithms connected components", "location": "/code/graph_algorithms/src/connected_components"}, {"category": "numerical analysis", "description": "code numerical analysis", "location": "/code/numerical_analysis"}, {"category": "integral", "description": "numerical analysis integral", "location": "/code/numerical_analysis/integral"}, {"category": "src", "description": "integral", "location": "/code/numerical_analysis/integral/src"}, {"category": "monte carlo", "description": "numerical analysis monte carlo", "location": "/code/numerical_analysis/monte_carlo"}, {"category": "src", "description": "monte carlo", "location": "/code/numerical_analysis/monte_carlo/src"}, {"category": "runge kutt", "description": "numerical analysis runge kutt", "location": "/code/numerical_analysis/runge_kutt"}, {"category": "src", "description": "runge kutt", "location": "/code/numerical_analysis/runge_kutt/src"}, {"category": "design pattern", "description": "code design pattern", "location": "/code/design_pattern"}, {"category": "test", "description": "design pattern", "location": "/code/design_pattern/test"}, {"category": "src", "description": "design pattern", "location": "/code/design_pattern/src"}, {"category": "singleton pattern", "description": "design pattern singleton pattern", "location": "/code/design_pattern/src/singleton_pattern"}, {"category": "iterator pattern", "description": "design pattern iterator pattern", "location": "/code/design_pattern/src/iterator_pattern"}, {"category": "OOP patterns", "description": "design pattern OOP patterns", "location": "/code/design_pattern/src/OOP_patterns"}, {"category": "singleton pattern", "description": "OOP patterns singleton pattern", "location": "/code/design_pattern/src/OOP_patterns/singleton_pattern"}, {"category": "proxy", "description": "OOP patterns proxy", "location": "/code/design_pattern/src/OOP_patterns/proxy"}, {"category": "virtual", "description": "proxy virtual", "location": "/code/design_pattern/src/OOP_patterns/proxy/virtual"}, {"category": "proxy", "description": "virtual proxy", "location": "/code/design_pattern/src/OOP_patterns/proxy/virtual/proxy"}, {"category": "demo", "description": "proxy demo", "location": "/code/design_pattern/src/OOP_patterns/proxy/demo"}, {"category": "protection", "description": "proxy protection", "location": "/code/design_pattern/src/OOP_patterns/proxy/protection"}, {"category": "proxy", "description": "protection proxy", "location": "/code/design_pattern/src/OOP_patterns/proxy/protection/proxy"}, {"category": "observer pattern", "description": "OOP patterns observer pattern", "location": "/code/design_pattern/src/OOP_patterns/observer_pattern"}, {"category": "observer java", "description": "OOP patterns observer java", "location": "/code/design_pattern/src/OOP_patterns/observer_java"}, {"category": "observer", "description": "observer java observer", "location": "/code/design_pattern/src/OOP_patterns/observer_java/observer"}, {"category": "network", "description": "observer network", "location": "/code/design_pattern/src/OOP_patterns/observer_java/observer/network"}, {"category": "facade", "description": "OOP patterns facade", "location": "/code/design_pattern/src/OOP_patterns/facade"}, {"category": "daily", "description": "facade daily", "location": "/code/design_pattern/src/OOP_patterns/facade/daily"}, {"category": "tasks", "description": "daily tasks", "location": "/code/design_pattern/src/OOP_patterns/facade/daily/tasks"}, {"category": "gym", "description": "tasks gym", "location": "/code/design_pattern/src/OOP_patterns/facade/daily/tasks/gym"}, {"category": "morning", "description": "tasks morning", "location": "/code/design_pattern/src/OOP_patterns/facade/daily/tasks/morning"}, {"category": "routine", "description": "morning routine", "location": "/code/design_pattern/src/OOP_patterns/facade/daily/tasks/morning/routine"}, {"category": "job", "description": "tasks job", "location": "/code/design_pattern/src/OOP_patterns/facade/daily/tasks/job"}, {"category": "evening", "description": "tasks evening", "location": "/code/design_pattern/src/OOP_patterns/facade/daily/tasks/evening"}, {"category": "routine", "description": "evening routine", "location": "/code/design_pattern/src/OOP_patterns/facade/daily/tasks/evening/routine"}, {"category": "adapter", "description": "OOP patterns adapter", "location": "/code/design_pattern/src/OOP_patterns/adapter"}, {"category": "Soldiers", "description": "adapter Soldiers", "location": "/code/design_pattern/src/OOP_patterns/adapter/Soldiers"}, {"category": "factory", "description": "OOP patterns factory", "location": "/code/design_pattern/src/OOP_patterns/factory"}, {"category": "gifts", "description": "factory gifts", "location": "/code/design_pattern/src/OOP_patterns/factory/gifts"}, {"category": "builder", "description": "OOP patterns builder", "location": "/code/design_pattern/src/OOP_patterns/builder"}, {"category": "builder", "description": "builder builder", "location": "/code/design_pattern/src/OOP_patterns/builder/builder"}, {"category": "functional-patterns", "description": "design pattern functional-patterns", "location": "/code/design_pattern/src/functional-patterns"}, {"category": "builder pattern", "description": "design pattern builder pattern", "location": "/code/design_pattern/src/builder_pattern"}, {"category": "policy based design", "description": "design pattern policy based design", "location": "/code/design_pattern/src/policy_based_design"}, {"category": "operating system", "description": "code operating system", "location": "/code/operating_system"}, {"category": "test", "description": "operating system", "location": "/code/operating_system/test"}, {"category": "src", "description": "operating system", "location": "/code/operating_system/src"}, {"category": "deadlocks", "description": "operating system deadlocks", "location": "/code/operating_system/src/deadlocks"}, {"category": "bankers algorithm", "description": "deadlocks bankers algorithm", "location": "/code/operating_system/src/deadlocks/bankers_algorithm"}, {"category": "shell", "description": "operating system shell", "location": "/code/operating_system/src/shell"}, {"category": "C", "description": "shell C", "location": "/code/operating_system/src/shell/C"}, {"category": "scheduling", "description": "operating system scheduling", "location": "/code/operating_system/src/scheduling"}, {"category": "first come first serve", "description": "scheduling first come first serve", "location": "/code/operating_system/src/scheduling/first_come_first_serve"}, {"category": "multi level feedback queue scheduling", "description": "scheduling multi level feedback queue scheduling", "location": "/code/operating_system/src/scheduling/multi_level_feedback_queue_scheduling"}, {"category": "smallest remaining time first", "description": "scheduling smallest remaining time first", "location": "/code/operating_system/src/scheduling/smallest_remaining_time_first"}, {"category": "round robin scheduling", "description": "scheduling round robin scheduling", "location": "/code/operating_system/src/scheduling/round_robin_scheduling"}, {"category": "round robin c", "description": "round robin scheduling round robin c", "location": "/code/operating_system/src/scheduling/round_robin_scheduling/round_robin_c"}, {"category": "shortest seek time first", "description": "scheduling shortest seek time first", "location": "/code/operating_system/src/scheduling/shortest_seek_time_first"}, {"category": "memory management", "description": "operating system memory management", "location": "/code/operating_system/src/memory_management"}, {"category": "least recently used", "description": "memory management least recently used", "location": "/code/operating_system/src/memory_management/least_recently_used"}, {"category": "memory mapping", "description": "memory management memory mapping", "location": "/code/operating_system/src/memory_management/memory_mapping"}, {"category": "concurrency", "description": "operating system concurrency", "location": "/code/operating_system/src/concurrency"}, {"category": "dining philosophers", "description": "concurrency dining philosophers", "location": "/code/operating_system/src/concurrency/dining_philosophers"}, {"category": "readers writers", "description": "concurrency readers writers", "location": "/code/operating_system/src/concurrency/readers_writers"}, {"category": "peterson algorithm for mutual exclusion", "description": "concurrency peterson algorithm for mutual exclusion", "location": "/code/operating_system/src/concurrency/peterson_algorithm_for_mutual_exclusion"}, {"category": "peterson algorithm in c", "description": "peterson algorithm for mutual exclusion peterson algorithm in c", "location": "/code/operating_system/src/concurrency/peterson_algorithm_for_mutual_exclusion/peterson_algorithm_in_c"}, {"category": "monitors", "description": "concurrency monitors", "location": "/code/operating_system/src/concurrency/monitors"}, {"category": "monitors system v", "description": "monitors monitors system v", "location": "/code/operating_system/src/concurrency/monitors/monitors_system_v"}, {"category": "producer consumer", "description": "concurrency producer consumer", "location": "/code/operating_system/src/concurrency/producer_consumer"}, {"category": "mathematical algorithms", "description": "code mathematical algorithms", "location": "/code/mathematical_algorithms"}, {"category": "test", "description": "mathematical algorithms", "location": "/code/mathematical_algorithms/test"}, {"category": "src", "description": "mathematical algorithms", "location": "/code/mathematical_algorithms/src"}, {"category": "prime factors", "description": "mathematical algorithms prime factors", "location": "/code/mathematical_algorithms/src/prime_factors"}, {"category": "lexicographic string rank", "description": "mathematical algorithms lexicographic string rank", "location": "/code/mathematical_algorithms/src/lexicographic_string_rank"}, {"category": "log of factorial", "description": "mathematical algorithms log of factorial", "location": "/code/mathematical_algorithms/src/log_of_factorial"}, {"category": "sum of digits", "description": "mathematical algorithms sum of digits", "location": "/code/mathematical_algorithms/src/sum_of_digits"}, {"category": "binomial coefficient", "description": "mathematical algorithms binomial coefficient", "location": "/code/mathematical_algorithms/src/binomial_coefficient"}, {"category": "tower of hanoi", "description": "mathematical algorithms tower of hanoi", "location": "/code/mathematical_algorithms/src/tower_of_hanoi"}, {"category": "gcd and lcm", "description": "mathematical algorithms gcd and lcm", "location": "/code/mathematical_algorithms/src/gcd_and_lcm"}, {"category": "count digits", "description": "mathematical algorithms count digits", "location": "/code/mathematical_algorithms/src/count_digits"}, {"category": "fibonacci number", "description": "mathematical algorithms fibonacci number", "location": "/code/mathematical_algorithms/src/fibonacci_number"}, {"category": "primality tests", "description": "mathematical algorithms primality tests", "location": "/code/mathematical_algorithms/src/primality_tests"}, {"category": "miller rabin primality test", "description": "primality tests miller rabin primality test", "location": "/code/mathematical_algorithms/src/primality_tests/miller_rabin_primality_test"}, {"category": "fermat primality test", "description": "primality tests fermat primality test", "location": "/code/mathematical_algorithms/src/primality_tests/fermat_primality_test"}, {"category": "solovay-strassen primality test", "description": "primality tests solovay-strassen primality test", "location": "/code/mathematical_algorithms/src/primality_tests/solovay-strassen_primality_test"}, {"category": "integer to roman", "description": "mathematical algorithms integer to roman", "location": "/code/mathematical_algorithms/src/integer_to_roman"}, {"category": "next larger number", "description": "mathematical algorithms next larger number", "location": "/code/mathematical_algorithms/src/next_larger_number"}, {"category": "pascal triangle", "description": "mathematical algorithms pascal triangle", "location": "/code/mathematical_algorithms/src/pascal_triangle"}, {"category": "sieve of atkin", "description": "mathematical algorithms sieve of atkin", "location": "/code/mathematical_algorithms/src/sieve_of_atkin"}, {"category": "delannoy number", "description": "mathematical algorithms delannoy number", "location": "/code/mathematical_algorithms/src/delannoy_number"}, {"category": "newman conway", "description": "mathematical algorithms newman conway", "location": "/code/mathematical_algorithms/src/newman_conway"}, {"category": "reverse factorial", "description": "mathematical algorithms reverse factorial", "location": "/code/mathematical_algorithms/src/reverse_factorial"}, {"category": "perfect number", "description": "mathematical algorithms perfect number", "location": "/code/mathematical_algorithms/src/perfect_number"}, {"category": "segmented sieve of eratosthenes", "description": "mathematical algorithms segmented sieve of eratosthenes", "location": "/code/mathematical_algorithms/src/segmented_sieve_of_eratosthenes"}, {"category": "lucas theorem", "description": "mathematical algorithms lucas theorem", "location": "/code/mathematical_algorithms/src/lucas_theorem"}, {"category": "fast inverse sqrt", "description": "mathematical algorithms fast inverse sqrt", "location": "/code/mathematical_algorithms/src/fast_inverse_sqrt"}, {"category": "sieve of eratosthenes", "description": "mathematical algorithms sieve of eratosthenes", "location": "/code/mathematical_algorithms/src/sieve_of_eratosthenes"}, {"category": "permutation lexicographic order", "description": "mathematical algorithms permutation lexicographic order", "location": "/code/mathematical_algorithms/src/permutation_lexicographic_order"}, {"category": "tribonacci numbers", "description": "mathematical algorithms tribonacci numbers", "location": "/code/mathematical_algorithms/src/tribonacci_numbers"}, {"category": "prime numbers of n", "description": "mathematical algorithms prime numbers of n", "location": "/code/mathematical_algorithms/src/prime_numbers_of_n"}, {"category": "catalan number", "description": "mathematical algorithms catalan number", "location": "/code/mathematical_algorithms/src/catalan_number"}, {"category": "multiply polynomial", "description": "mathematical algorithms multiply polynomial", "location": "/code/mathematical_algorithms/src/multiply_polynomial"}, {"category": "derangements", "description": "mathematical algorithms derangements", "location": "/code/mathematical_algorithms/src/derangements"}, {"category": "count trailing zeroes", "description": "mathematical algorithms count trailing zeroes", "location": "/code/mathematical_algorithms/src/count_trailing_zeroes"}, {"category": "average stream numbers", "description": "mathematical algorithms average stream numbers", "location": "/code/mathematical_algorithms/src/average_stream_numbers"}, {"category": "replace 0 with 5", "description": "mathematical algorithms replace 0 with 5", "location": "/code/mathematical_algorithms/src/replace_0_with_5"}, {"category": "modular inverse", "description": "mathematical algorithms modular inverse", "location": "/code/mathematical_algorithms/src/modular_inverse"}, {"category": "hill climbing", "description": "mathematical algorithms hill climbing", "location": "/code/mathematical_algorithms/src/hill_climbing"}, {"category": "simpsons rule", "description": "mathematical algorithms simpsons rule", "location": "/code/mathematical_algorithms/src/simpsons_rule"}, {"category": "gaussian elimination", "description": "mathematical algorithms gaussian elimination", "location": "/code/mathematical_algorithms/src/gaussian_elimination"}, {"category": "scala", "description": "gaussian elimination scala", "location": "/code/mathematical_algorithms/src/gaussian_elimination/scala"}, {"category": "src", "description": "scala", "location": "/code/mathematical_algorithms/src/gaussian_elimination/scala/src"}, {"category": "main", "description": "scala main", "location": "/code/mathematical_algorithms/src/gaussian_elimination/scala/src/main"}, {"category": "scala", "description": "main scala", "location": "/code/mathematical_algorithms/src/gaussian_elimination/scala/src/main/scala"}, {"category": "gaussian", "description": "scala gaussian", "location": "/code/mathematical_algorithms/src/gaussian_elimination/scala/src/main/scala/gaussian"}, {"category": "elimination", "description": "gaussian elimination", "location": "/code/mathematical_algorithms/src/gaussian_elimination/scala/src/main/scala/gaussian/elimination"}, {"category": "structures", "description": "scala structures", "location": "/code/mathematical_algorithms/src/gaussian_elimination/scala/src/main/scala/structures"}, {"category": "project", "description": "scala project", "location": "/code/mathematical_algorithms/src/gaussian_elimination/scala/project"}, {"category": "pandigital number", "description": "mathematical algorithms pandigital number", "location": "/code/mathematical_algorithms/src/pandigital_number"}, {"category": "reverse number", "description": "mathematical algorithms reverse number", "location": "/code/mathematical_algorithms/src/reverse_number"}, {"category": "horner polynomial evaluation", "description": "mathematical algorithms horner polynomial evaluation", "location": "/code/mathematical_algorithms/src/horner_polynomial_evaluation"}, {"category": "newton raphson method", "description": "mathematical algorithms newton raphson method", "location": "/code/mathematical_algorithms/src/newton_raphson_method"}, {"category": "euler totient", "description": "mathematical algorithms euler totient", "location": "/code/mathematical_algorithms/src/euler_totient"}, {"category": "russian peasant multiplication", "description": "mathematical algorithms russian peasant multiplication", "location": "/code/mathematical_algorithms/src/russian_peasant_multiplication"}, {"category": "exponentiation power", "description": "mathematical algorithms exponentiation power", "location": "/code/mathematical_algorithms/src/exponentiation_power"}, {"category": "exponentiation by squaring", "description": "exponentiation power exponentiation by squaring", "location": "/code/mathematical_algorithms/src/exponentiation_power/exponentiation_by_squaring"}, {"category": "lucky number", "description": "mathematical algorithms lucky number", "location": "/code/mathematical_algorithms/src/lucky_number"}, {"category": "integer conversion", "description": "mathematical algorithms integer conversion", "location": "/code/mathematical_algorithms/src/integer_conversion"}, {"category": "poisson sample", "description": "mathematical algorithms poisson sample", "location": "/code/mathematical_algorithms/src/poisson_sample"}, {"category": "add polynomials", "description": "mathematical algorithms add polynomials", "location": "/code/mathematical_algorithms/src/add_polynomials"}, {"category": "dfa division", "description": "mathematical algorithms dfa division", "location": "/code/mathematical_algorithms/src/dfa_division"}, {"category": "jacobi method", "description": "mathematical algorithms jacobi method", "location": "/code/mathematical_algorithms/src/jacobi_method"}, {"category": "greatest digit in number", "description": "mathematical algorithms greatest digit in number", "location": "/code/mathematical_algorithms/src/greatest_digit_in_number"}, {"category": "magic square", "description": "mathematical algorithms magic square", "location": "/code/mathematical_algorithms/src/magic_square"}, {"category": "automorphic numbers", "description": "mathematical algorithms automorphic numbers", "location": "/code/mathematical_algorithms/src/automorphic_numbers"}, {"category": "pythagorean triplet", "description": "mathematical algorithms pythagorean triplet", "location": "/code/mathematical_algorithms/src/pythagorean_triplet"}, {"category": "decoding of string", "description": "mathematical algorithms decoding of string", "location": "/code/mathematical_algorithms/src/decoding_of_string"}, {"category": "karatsuba multiplication", "description": "mathematical algorithms karatsuba multiplication", "location": "/code/mathematical_algorithms/src/karatsuba_multiplication"}, {"category": "newton polynomial", "description": "mathematical algorithms newton polynomial", "location": "/code/mathematical_algorithms/src/newton_polynomial"}, {"category": "coprime numbers", "description": "mathematical algorithms coprime numbers", "location": "/code/mathematical_algorithms/src/coprime_numbers"}, {"category": "shuffle array", "description": "mathematical algorithms shuffle array", "location": "/code/mathematical_algorithms/src/shuffle_array"}, {"category": "diophantine", "description": "mathematical algorithms diophantine", "location": "/code/mathematical_algorithms/src/diophantine"}, {"category": "babylonian method", "description": "mathematical algorithms babylonian method", "location": "/code/mathematical_algorithms/src/babylonian_method"}, {"category": "std", "description": "mathematical algorithms std", "location": "/code/mathematical_algorithms/src/std"}, {"category": "largrange polynomial", "description": "mathematical algorithms largrange polynomial", "location": "/code/mathematical_algorithms/src/largrange_polynomial"}, {"category": "divided differences", "description": "mathematical algorithms divided differences", "location": "/code/mathematical_algorithms/src/divided_differences"}, {"category": "smallest digit in number", "description": "mathematical algorithms smallest digit in number", "location": "/code/mathematical_algorithms/src/smallest_digit_in_number"}, {"category": "square free number", "description": "mathematical algorithms square free number", "location": "/code/mathematical_algorithms/src/square_free_number"}, {"category": "convolution", "description": "mathematical algorithms convolution", "location": "/code/mathematical_algorithms/src/convolution"}, {"category": "check is square", "description": "mathematical algorithms check is square", "location": "/code/mathematical_algorithms/src/check_is_square"}, {"category": "2sum", "description": "mathematical algorithms 2sum", "location": "/code/mathematical_algorithms/src/2sum"}, {"category": "steepest descent", "description": "mathematical algorithms steepest descent", "location": "/code/mathematical_algorithms/src/steepest_descent"}, {"category": "taxicab numbers", "description": "mathematical algorithms taxicab numbers", "location": "/code/mathematical_algorithms/src/taxicab_numbers"}, {"category": "fractals", "description": "mathematical algorithms fractals", "location": "/code/mathematical_algorithms/src/fractals"}, {"category": "fermats little theorem", "description": "mathematical algorithms fermats little theorem", "location": "/code/mathematical_algorithms/src/fermats_little_theorem"}, {"category": "tridiagonal matrix", "description": "mathematical algorithms tridiagonal matrix", "location": "/code/mathematical_algorithms/src/tridiagonal_matrix"}, {"category": "amicable numbers", "description": "mathematical algorithms amicable numbers", "location": "/code/mathematical_algorithms/src/amicable_numbers"}, {"category": "fast fourier transform", "description": "mathematical algorithms fast fourier transform", "location": "/code/mathematical_algorithms/src/fast_fourier_transform"}, {"category": "factorial", "description": "mathematical algorithms factorial", "location": "/code/mathematical_algorithms/src/factorial"}, {"category": "armstrong numbers", "description": "mathematical algorithms armstrong numbers", "location": "/code/mathematical_algorithms/src/armstrong_numbers"}, {"category": "theory of computation", "description": "code theory of computation", "location": "/code/theory_of_computation"}, {"category": "src", "description": "theory of computation", "location": "/code/theory_of_computation/src"}, {"category": "nondeterministic finite atomaton", "description": "theory of computation nondeterministic finite atomaton", "location": "/code/theory_of_computation/src/nondeterministic_finite_atomaton"}, {"category": "deterministic finite automaton", "description": "theory of computation deterministic finite automaton", "location": "/code/theory_of_computation/src/deterministic_finite_automaton"}, {"category": "cryptography", "description": "code cryptography", "location": "/code/cryptography"}, {"category": "test", "description": "cryptography", "location": "/code/cryptography/test"}, {"category": "baconian cipher", "description": "cryptography baconian cipher", "location": "/code/cryptography/test/baconian_cipher"}, {"category": "src", "description": "cryptography", "location": "/code/cryptography/src"}, {"category": "rsa", "description": "cryptography rsa", "location": "/code/cryptography/src/rsa"}, {"category": "caesar cipher", "description": "cryptography caesar cipher", "location": "/code/cryptography/src/caesar_cipher"}, {"category": "vigenere cipher", "description": "cryptography vigenere cipher", "location": "/code/cryptography/src/vigenere_cipher"}, {"category": "aes 128", "description": "cryptography aes 128", "location": "/code/cryptography/src/aes_128"}, {"category": "aes csharp", "description": "aes 128 aes csharp", "location": "/code/cryptography/src/aes_128/aes_csharp"}, {"category": "example", "description": "aes csharp example", "location": "/code/cryptography/src/aes_128/aes_csharp/example"}, {"category": "sha", "description": "cryptography sha", "location": "/code/cryptography/src/sha"}, {"category": "sha 256", "description": "sha sha 256", "location": "/code/cryptography/src/sha/sha_256"}, {"category": "rot13 cipher", "description": "cryptography rot13 cipher", "location": "/code/cryptography/src/rot13_cipher"}, {"category": "baconian cipher", "description": "cryptography baconian cipher", "location": "/code/cryptography/src/baconian_cipher"}, {"category": "porta cipher", "description": "cryptography porta cipher", "location": "/code/cryptography/src/porta_cipher"}, {"category": "rsa digital signature", "description": "cryptography rsa digital signature", "location": "/code/cryptography/src/rsa_digital_signature"}, {"category": "huffman encoding", "description": "cryptography huffman encoding", "location": "/code/cryptography/src/huffman_encoding"}, {"category": "morse cipher", "description": "cryptography morse cipher", "location": "/code/cryptography/src/morse_cipher"}, {"category": "runningkey cipher", "description": "cryptography runningkey cipher", "location": "/code/cryptography/src/runningkey_cipher"}, {"category": "columnar transposition cipher", "description": "cryptography columnar transposition cipher", "location": "/code/cryptography/src/columnar_transposition_cipher"}, {"category": "rail fence cipher", "description": "cryptography rail fence cipher", "location": "/code/cryptography/src/rail_fence_cipher"}, {"category": "polybius cipher", "description": "cryptography polybius cipher", "location": "/code/cryptography/src/polybius_cipher"}, {"category": "affine cipher", "description": "cryptography affine cipher", "location": "/code/cryptography/src/affine_cipher"}, {"category": "autokey cipher", "description": "cryptography autokey cipher", "location": "/code/cryptography/src/autokey_cipher"}, {"category": "atbash cipher", "description": "cryptography atbash cipher", "location": "/code/cryptography/src/atbash_cipher"}, {"category": "bit manipulation", "description": "code bit manipulation", "location": "/code/bit_manipulation"}, {"category": "test", "description": "bit manipulation", "location": "/code/bit_manipulation/test"}, {"category": "src", "description": "bit manipulation", "location": "/code/bit_manipulation/src"}, {"category": "lonely integer", "description": "bit manipulation lonely integer", "location": "/code/bit_manipulation/src/lonely_integer"}, {"category": "sum binary numbers", "description": "bit manipulation sum binary numbers", "location": "/code/bit_manipulation/src/sum_binary_numbers"}, {"category": "addition using bits", "description": "bit manipulation addition using bits", "location": "/code/bit_manipulation/src/addition_using_bits"}, {"category": "thrice unique number", "description": "bit manipulation thrice unique number", "location": "/code/bit_manipulation/src/thrice_unique_number"}, {"category": "xor swap", "description": "bit manipulation xor swap", "location": "/code/bit_manipulation/src/xor_swap"}, {"category": "invert bit", "description": "bit manipulation invert bit", "location": "/code/bit_manipulation/src/invert_bit"}, {"category": "bit division", "description": "bit manipulation bit division", "location": "/code/bit_manipulation/src/bit_division"}, {"category": "convert number binary", "description": "bit manipulation convert number binary", "location": "/code/bit_manipulation/src/convert_number_binary"}, {"category": "subset generation", "description": "bit manipulation subset generation", "location": "/code/bit_manipulation/src/subset_generation"}, {"category": "hamming distance", "description": "bit manipulation hamming distance", "location": "/code/bit_manipulation/src/hamming_distance"}, {"category": "flip bits", "description": "bit manipulation flip bits", "location": "/code/bit_manipulation/src/flip_bits"}, {"category": "sum equals xor", "description": "bit manipulation sum equals xor", "location": "/code/bit_manipulation/src/sum_equals_xor"}, {"category": "count set bits", "description": "bit manipulation count set bits", "location": "/code/bit_manipulation/src/count_set_bits"}, {"category": "twice unique number", "description": "bit manipulation twice unique number", "location": "/code/bit_manipulation/src/twice_unique_number"}, {"category": "maximum xor value", "description": "bit manipulation maximum xor value", "location": "/code/bit_manipulation/src/maximum_xor_value"}, {"category": "power of 2", "description": "bit manipulation power of 2", "location": "/code/bit_manipulation/src/power_of_2"}, {"category": "byte swapper", "description": "bit manipulation byte swapper", "location": "/code/bit_manipulation/src/byte_swapper"}, {"category": "magic number", "description": "bit manipulation magic number", "location": "/code/bit_manipulation/src/magic_number"}, {"category": "filters", "description": "code filters", "location": "/code/filters"}, {"category": "src", "description": "filters", "location": "/code/filters/src"}, {"category": "gaussian filter", "description": "filters gaussian filter", "location": "/code/filters/src/gaussian_filter"}, {"category": "median filter", "description": "filters median filter", "location": "/code/filters/src/median_filter"}, {"category": "compression", "description": "code compression", "location": "/code/compression"}, {"category": "test", "description": "compression", "location": "/code/compression/test"}, {"category": "lossless compression", "description": "compression lossless compression", "location": "/code/compression/test/lossless_compression"}, {"category": "huffman", "description": "lossless compression huffman", "location": "/code/compression/test/lossless_compression/huffman"}, {"category": "src", "description": "compression", "location": "/code/compression/src"}, {"category": "lossless compression", "description": "compression lossless compression", "location": "/code/compression/src/lossless_compression"}, {"category": "lempel-ziv-welch", "description": "lossless compression lempel-ziv-welch", "location": "/code/compression/src/lossless_compression/lempel-ziv-welch"}, {"category": "huffman", "description": "lossless compression huffman", "location": "/code/compression/src/lossless_compression/huffman"}, {"category": "lossy compression", "description": "compression lossy compression", "location": "/code/compression/src/lossy_compression"}, {"category": "divide conquer", "description": "code divide conquer", "location": "/code/divide_conquer"}, {"category": "test", "description": "divide conquer", "location": "/code/divide_conquer/test"}, {"category": "src", "description": "divide conquer", "location": "/code/divide_conquer/src"}, {"category": "maximum contiguous subsequence sum", "description": "divide conquer maximum contiguous subsequence sum", "location": "/code/divide_conquer/src/maximum_contiguous_subsequence_sum"}, {"category": "merge sort using divide and conquer", "description": "divide conquer merge sort using divide and conquer", "location": "/code/divide_conquer/src/merge_sort_using_divide_and_conquer"}, {"category": "warnock algorithm", "description": "divide conquer warnock algorithm", "location": "/code/divide_conquer/src/warnock_algorithm"}, {"category": "tournament method to find min max", "description": "divide conquer tournament method to find min max", "location": "/code/divide_conquer/src/tournament_method_to_find_min_max"}, {"category": "inversion count", "description": "divide conquer inversion count", "location": "/code/divide_conquer/src/inversion_count"}, {"category": "Strassen matrix multiplication", "description": "divide conquer Strassen matrix multiplication", "location": "/code/divide_conquer/src/Strassen_matrix_multiplication"}, {"category": "x power y", "description": "divide conquer x power y", "location": "/code/divide_conquer/src/x_power_y"}, {"category": "closest pair of points", "description": "divide conquer closest pair of points", "location": "/code/divide_conquer/src/closest_pair_of_points"}, {"category": "karatsuba multiplication", "description": "divide conquer karatsuba multiplication", "location": "/code/divide_conquer/src/karatsuba_multiplication"}, {"category": "quick sort", "description": "divide conquer quick sort", "location": "/code/divide_conquer/src/quick_sort"}, {"category": "factorial", "description": "divide conquer factorial", "location": "/code/divide_conquer/src/factorial"}, {"category": "sorting", "description": "code sorting", "location": "/code/sorting"}, {"category": "test", "description": "sorting", "location": "/code/sorting/test"}, {"category": "src", "description": "sorting", "location": "/code/sorting/src"}, {"category": "circle sort", "description": "sorting circle sort", "location": "/code/sorting/src/circle_sort"}, {"category": "flash sort", "description": "sorting flash sort", "location": "/code/sorting/src/flash_sort"}, {"category": "radix sort", "description": "sorting radix sort", "location": "/code/sorting/src/radix_sort"}, {"category": "tree sort", "description": "sorting tree sort", "location": "/code/sorting/src/tree_sort"}, {"category": "gnome sort", "description": "sorting gnome sort", "location": "/code/sorting/src/gnome_sort"}, {"category": "sleep sort", "description": "sorting sleep sort", "location": "/code/sorting/src/sleep_sort"}, {"category": "bucket sort", "description": "sorting bucket sort", "location": "/code/sorting/src/bucket_sort"}, {"category": "selection sort", "description": "sorting selection sort", "location": "/code/sorting/src/selection_sort"}, {"category": "counting sort", "description": "sorting counting sort", "location": "/code/sorting/src/counting_sort"}, {"category": "heap sort", "description": "sorting heap sort", "location": "/code/sorting/src/heap_sort"}, {"category": "comb sort", "description": "sorting comb sort", "location": "/code/sorting/src/comb_sort"}, {"category": "bubble sort", "description": "sorting bubble sort", "location": "/code/sorting/src/bubble_sort"}, {"category": "shell sort", "description": "sorting shell sort", "location": "/code/sorting/src/shell_sort"}, {"category": "pigeonhole sort", "description": "sorting pigeonhole sort", "location": "/code/sorting/src/pigeonhole_sort"}, {"category": "bogo sort", "description": "sorting bogo sort", "location": "/code/sorting/src/bogo_sort"}, {"category": "median sort", "description": "sorting median sort", "location": "/code/sorting/src/median_sort"}, {"category": "merge sort", "description": "sorting merge sort", "location": "/code/sorting/src/merge_sort"}, {"category": "topological sort", "description": "sorting topological sort", "location": "/code/sorting/src/topological_sort"}, {"category": "intro sort", "description": "sorting intro sort", "location": "/code/sorting/src/intro_sort"}, {"category": "shaker sort", "description": "sorting shaker sort", "location": "/code/sorting/src/shaker_sort"}, {"category": "stooge sort", "description": "sorting stooge sort", "location": "/code/sorting/src/stooge_sort"}, {"category": "cycle sort", "description": "sorting cycle sort", "location": "/code/sorting/src/cycle_sort"}, {"category": "insertion sort", "description": "sorting insertion sort", "location": "/code/sorting/src/insertion_sort"}, {"category": "quick sort", "description": "sorting quick sort", "location": "/code/sorting/src/quick_sort"}, {"category": "bead sort", "description": "sorting bead sort", "location": "/code/sorting/src/bead_sort"}, {"category": "data structures", "description": "code data structures", "location": "/code/data_structures"}, {"category": "test", "description": "data structures", "location": "/code/data_structures/test"}, {"category": "list", "description": "data structures list", "location": "/code/data_structures/test/list"}, {"category": "tree", "description": "data structures tree", "location": "/code/data_structures/test/tree"}, {"category": "binary tree", "description": "tree binary tree", "location": "/code/data_structures/test/tree/binary_tree"}, {"category": "binary tree", "description": "binary tree binary tree", "location": "/code/data_structures/test/tree/binary_tree/binary_tree"}, {"category": "diameter", "description": "binary tree diameter", "location": "/code/data_structures/test/tree/binary_tree/binary_tree/diameter"}, {"category": "path sum", "description": "binary tree path sum", "location": "/code/data_structures/test/tree/binary_tree/binary_tree/path_sum"}, {"category": "is same", "description": "binary tree is same", "location": "/code/data_structures/test/tree/binary_tree/binary_tree/is_same"}, {"category": "multiway tree", "description": "tree multiway tree", "location": "/code/data_structures/test/tree/multiway_tree"}, {"category": "red black tree", "description": "multiway tree red black tree", "location": "/code/data_structures/test/tree/multiway_tree/red_black_tree"}, {"category": "union find", "description": "multiway tree union find", "location": "/code/data_structures/test/tree/multiway_tree/union_find"}, {"category": "src", "description": "data structures", "location": "/code/data_structures/src"}, {"category": "list", "description": "data structures list", "location": "/code/data_structures/src/list"}, {"category": "doubly linked list", "description": "list doubly linked list", "location": "/code/data_structures/src/list/doubly_linked_list"}, {"category": "C", "description": "doubly linked list C", "location": "/code/data_structures/src/list/doubly_linked_list/C"}, {"category": "skip list", "description": "list skip list", "location": "/code/data_structures/src/list/skip_list"}, {"category": "xor linked list", "description": "list xor linked list", "location": "/code/data_structures/src/list/xor_linked_list"}, {"category": "circular linked list", "description": "list circular linked list", "location": "/code/data_structures/src/list/circular_linked_list"}, {"category": "operations", "description": "circular linked list operations", "location": "/code/data_structures/src/list/circular_linked_list/operations"}, {"category": "singly linked list", "description": "list singly linked list", "location": "/code/data_structures/src/list/singly_linked_list"}, {"category": "operations", "description": "singly linked list operations", "location": "/code/data_structures/src/list/singly_linked_list/operations"}, {"category": "unclassified", "description": "operations unclassified", "location": "/code/data_structures/src/list/singly_linked_list/operations/unclassified"}, {"category": "push", "description": "operations push", "location": "/code/data_structures/src/list/singly_linked_list/operations/push"}, {"category": "reverse", "description": "operations reverse", "location": "/code/data_structures/src/list/singly_linked_list/operations/reverse"}, {"category": "find", "description": "operations find", "location": "/code/data_structures/src/list/singly_linked_list/operations/find"}, {"category": "detect cycle", "description": "operations detect cycle", "location": "/code/data_structures/src/list/singly_linked_list/operations/detect_cycle"}, {"category": "print reverse", "description": "operations print reverse", "location": "/code/data_structures/src/list/singly_linked_list/operations/print_reverse"}, {"category": "rotate", "description": "operations rotate", "location": "/code/data_structures/src/list/singly_linked_list/operations/rotate"}, {"category": "n th node linked list", "description": "operations n th node linked list", "location": "/code/data_structures/src/list/singly_linked_list/operations/n_th_node_linked_list"}, {"category": "sort", "description": "operations sort", "location": "/code/data_structures/src/list/singly_linked_list/operations/sort"}, {"category": "delete", "description": "operations delete", "location": "/code/data_structures/src/list/singly_linked_list/operations/delete"}, {"category": "insertion", "description": "operations insertion", "location": "/code/data_structures/src/list/singly_linked_list/operations/insertion"}, {"category": "merge sorted", "description": "operations merge sorted", "location": "/code/data_structures/src/list/singly_linked_list/operations/merge_sorted"}, {"category": "tree", "description": "data structures tree", "location": "/code/data_structures/src/tree"}, {"category": "heap", "description": "tree heap", "location": "/code/data_structures/src/tree/heap"}, {"category": "pairing heap", "description": "heap pairing heap", "location": "/code/data_structures/src/tree/heap/pairing_heap"}, {"category": "soft heap", "description": "heap soft heap", "location": "/code/data_structures/src/tree/heap/soft_heap"}, {"category": "priority queue", "description": "heap priority queue", "location": "/code/data_structures/src/tree/heap/priority_queue"}, {"category": "leftist tree", "description": "priority queue leftist tree", "location": "/code/data_structures/src/tree/heap/priority_queue/leftist_tree"}, {"category": "min heap", "description": "heap min heap", "location": "/code/data_structures/src/tree/heap/min_heap"}, {"category": "binomial heap", "description": "heap binomial heap", "location": "/code/data_structures/src/tree/heap/binomial_heap"}, {"category": "max heap", "description": "heap max heap", "location": "/code/data_structures/src/tree/heap/max_heap"}, {"category": "tree", "description": "tree tree", "location": "/code/data_structures/src/tree/tree"}, {"category": "suffix array", "description": "tree suffix array", "location": "/code/data_structures/src/tree/tree/suffix_array"}, {"category": "trie", "description": "tree trie", "location": "/code/data_structures/src/tree/tree/trie"}, {"category": "Van Emde Boas Tree", "description": "tree Van Emde Boas Tree", "location": "/code/data_structures/src/tree/Van_Emde_Boas_Tree"}, {"category": "binary tree", "description": "tree binary tree", "location": "/code/data_structures/src/tree/binary_tree"}, {"category": "treap", "description": "binary tree treap", "location": "/code/data_structures/src/tree/binary_tree/treap"}, {"category": "binary tree", "description": "binary tree binary tree", "location": "/code/data_structures/src/tree/binary_tree/binary_tree"}, {"category": "traversal", "description": "binary tree traversal", "location": "/code/data_structures/src/tree/binary_tree/binary_tree/traversal"}, {"category": "preorder", "description": "traversal preorder", "location": "/code/data_structures/src/tree/binary_tree/binary_tree/traversal/preorder"}, {"category": "left view", "description": "preorder left view", "location": "/code/data_structures/src/tree/binary_tree/binary_tree/traversal/preorder/left_view"}, {"category": "right view", "description": "preorder right view", "location": "/code/data_structures/src/tree/binary_tree/binary_tree/traversal/preorder/right_view"}, {"category": "inorder", "description": "traversal inorder", "location": "/code/data_structures/src/tree/binary_tree/binary_tree/traversal/inorder"}, {"category": "right threaded", "description": "inorder right threaded", "location": "/code/data_structures/src/tree/binary_tree/binary_tree/traversal/inorder/right_threaded"}, {"category": "zigzag", "description": "traversal zigzag", "location": "/code/data_structures/src/tree/binary_tree/binary_tree/traversal/zigzag"}, {"category": "minimum height", "description": "binary tree minimum height", "location": "/code/data_structures/src/tree/binary_tree/binary_tree/minimum_height"}, {"category": "is binary tree", "description": "binary tree is binary tree", "location": "/code/data_structures/src/tree/binary_tree/binary_tree/is_binary_tree"}, {"category": "diameter", "description": "binary tree diameter", "location": "/code/data_structures/src/tree/binary_tree/binary_tree/diameter"}, {"category": "path sum", "description": "binary tree path sum", "location": "/code/data_structures/src/tree/binary_tree/binary_tree/path_sum"}, {"category": "sum left", "description": "path sum sum left", "location": "/code/data_structures/src/tree/binary_tree/binary_tree/path_sum/sum_left"}, {"category": "convert to doubly linked list", "description": "binary tree convert to doubly linked list", "location": "/code/data_structures/src/tree/binary_tree/binary_tree/convert_to_doubly_linked_list"}, {"category": "is balance", "description": "binary tree is balance", "location": "/code/data_structures/src/tree/binary_tree/binary_tree/is_balance"}, {"category": "maximum height", "description": "binary tree maximum height", "location": "/code/data_structures/src/tree/binary_tree/binary_tree/maximum_height"}, {"category": "node", "description": "binary tree node", "location": "/code/data_structures/src/tree/binary_tree/binary_tree/node"}, {"category": "make binary tree", "description": "binary tree make binary tree", "location": "/code/data_structures/src/tree/binary_tree/binary_tree/make_binary_tree"}, {"category": "from inorder and postorder", "description": "make binary tree from inorder and postorder", "location": "/code/data_structures/src/tree/binary_tree/binary_tree/make_binary_tree/from_inorder_and_postorder"}, {"category": "from inorder and preorder", "description": "make binary tree from inorder and preorder", "location": "/code/data_structures/src/tree/binary_tree/binary_tree/make_binary_tree/from_inorder_and_preorder"}, {"category": "tree", "description": "binary tree tree", "location": "/code/data_structures/src/tree/binary_tree/binary_tree/tree"}, {"category": "bottom view binary tree", "description": "tree bottom view binary tree", "location": "/code/data_structures/src/tree/binary_tree/binary_tree/tree/bottom_view_binary_tree"}, {"category": "is same", "description": "binary tree is same", "location": "/code/data_structures/src/tree/binary_tree/binary_tree/is_same"}, {"category": "make mirror tree", "description": "binary tree make mirror tree", "location": "/code/data_structures/src/tree/binary_tree/binary_tree/make_mirror_tree"}, {"category": "serializer", "description": "binary tree serializer", "location": "/code/data_structures/src/tree/binary_tree/binary_tree/serializer"}, {"category": "aa tree", "description": "binary tree aa tree", "location": "/code/data_structures/src/tree/binary_tree/aa_tree"}, {"category": "rope", "description": "binary tree rope", "location": "/code/data_structures/src/tree/binary_tree/rope"}, {"category": "avl tree", "description": "binary tree avl tree", "location": "/code/data_structures/src/tree/binary_tree/avl_tree"}, {"category": "multiway tree", "description": "tree multiway tree", "location": "/code/data_structures/src/tree/multiway_tree"}, {"category": "van emde boas tree", "description": "multiway tree van emde boas tree", "location": "/code/data_structures/src/tree/multiway_tree/van_emde_boas_tree"}, {"category": "red black tree", "description": "multiway tree red black tree", "location": "/code/data_structures/src/tree/multiway_tree/red_black_tree"}, {"category": "union find", "description": "multiway tree union find", "location": "/code/data_structures/src/tree/multiway_tree/union_find"}, {"category": "splay tree", "description": "multiway tree splay tree", "location": "/code/data_structures/src/tree/multiway_tree/splay_tree"}, {"category": "fenwick tree", "description": "multiway tree fenwick tree", "location": "/code/data_structures/src/tree/multiway_tree/fenwick_tree"}, {"category": "b tree", "description": "tree b tree", "location": "/code/data_structures/src/tree/b_tree"}, {"category": "two three tree", "description": "b tree two three tree", "location": "/code/data_structures/src/tree/b_tree/two_three_tree"}, {"category": "b tree", "description": "b tree b tree", "location": "/code/data_structures/src/tree/b_tree/b_tree"}, {"category": "b tree C", "description": "b tree b tree C", "location": "/code/data_structures/src/tree/b_tree/b_tree/b_tree_C"}, {"category": "space partitioning tree", "description": "tree space partitioning tree", "location": "/code/data_structures/src/tree/space_partitioning_tree"}, {"category": "quad tree", "description": "space partitioning tree quad tree", "location": "/code/data_structures/src/tree/space_partitioning_tree/quad_tree"}, {"category": "interval tree", "description": "space partitioning tree interval tree", "location": "/code/data_structures/src/tree/space_partitioning_tree/interval_tree"}, {"category": "segment tree", "description": "space partitioning tree segment tree", "location": "/code/data_structures/src/tree/space_partitioning_tree/segment_tree"}, {"category": "kd tree", "description": "space partitioning tree kd tree", "location": "/code/data_structures/src/tree/space_partitioning_tree/kd_tree"}, {"category": "segment tree", "description": "tree segment tree", "location": "/code/data_structures/src/tree/segment_tree"}, {"category": "bag", "description": "data structures bag", "location": "/code/data_structures/src/bag"}, {"category": "stack", "description": "data structures stack", "location": "/code/data_structures/src/stack"}, {"category": "infix to postfix", "description": "stack infix to postfix", "location": "/code/data_structures/src/stack/infix_to_postfix"}, {"category": "reverse stack", "description": "stack reverse stack", "location": "/code/data_structures/src/stack/reverse_stack"}, {"category": "prefix to postfix", "description": "stack prefix to postfix", "location": "/code/data_structures/src/stack/prefix_to_postfix"}, {"category": "postfix evaluation", "description": "stack postfix evaluation", "location": "/code/data_structures/src/stack/postfix_evaluation"}, {"category": "sort stack", "description": "stack sort stack", "location": "/code/data_structures/src/stack/sort_stack"}, {"category": "stack", "description": "stack stack", "location": "/code/data_structures/src/stack/stack"}, {"category": "balanced expression", "description": "stack balanced expression", "location": "/code/data_structures/src/stack/balanced_expression"}, {"category": "abstract stack", "description": "stack abstract stack", "location": "/code/data_structures/src/stack/abstract_stack"}, {"category": "cpp", "description": "abstract stack cpp", "location": "/code/data_structures/src/stack/abstract_stack/cpp"}, {"category": "arrayStack", "description": "cpp arrayStack", "location": "/code/data_structures/src/stack/abstract_stack/cpp/arrayStack"}, {"category": "linked list", "description": "data structures linked list", "location": "/code/data_structures/src/linked_list"}, {"category": "queue", "description": "data structures queue", "location": "/code/data_structures/src/queue"}, {"category": "queue using linked list", "description": "queue queue using linked list", "location": "/code/data_structures/src/queue/queue_using_linked_list"}, {"category": "double ended queue", "description": "queue double ended queue", "location": "/code/data_structures/src/queue/double_ended_queue"}, {"category": "queue stream", "description": "queue queue stream", "location": "/code/data_structures/src/queue/queue_stream"}, {"category": "circular buffer", "description": "queue circular buffer", "location": "/code/data_structures/src/queue/circular_buffer"}, {"category": "reverse queue", "description": "queue reverse queue", "location": "/code/data_structures/src/queue/reverse_queue"}, {"category": "queue using stack", "description": "queue queue using stack", "location": "/code/data_structures/src/queue/queue_using_stack"}, {"category": "queue", "description": "queue queue", "location": "/code/data_structures/src/queue/queue"}, {"category": "hashs", "description": "data structures hashs", "location": "/code/data_structures/src/hashs"}, {"category": "bloom filter", "description": "hashs bloom filter", "location": "/code/data_structures/src/hashs/bloom_filter"}, {"category": "hash table", "description": "hashs hash table", "location": "/code/data_structures/src/hashs/hash_table"}, {"category": "other", "description": "data structures other", "location": "/code/data_structures/src/other"}, {"category": "networking", "description": "code networking", "location": "/code/networking"}, {"category": "test", "description": "networking", "location": "/code/networking/test"}, {"category": "src", "description": "networking", "location": "/code/networking/src"}, {"category": "validate IP", "description": "networking validate IP", "location": "/code/networking/src/validate_IP"}, {"category": "PacketSniffer", "description": "networking PacketSniffer", "location": "/code/networking/src/PacketSniffer"}, {"category": "img", "description": "PacketSniffer img", "location": "/code/networking/src/PacketSniffer/img"}, {"category": "determine endianess", "description": "networking determine endianess", "location": "/code/networking/src/determine_endianess"}, {"category": "computational geometry", "description": "code computational geometry", "location": "/code/computational_geometry"}, {"category": "test", "description": "computational geometry", "location": "/code/computational_geometry/test"}, {"category": "src", "description": "computational geometry", "location": "/code/computational_geometry/src"}, {"category": "area of triangle", "description": "computational geometry area of triangle", "location": "/code/computational_geometry/src/area_of_triangle"}, {"category": "axis aligned bounding box collision", "description": "computational geometry axis aligned bounding box collision", "location": "/code/computational_geometry/src/axis_aligned_bounding_box_collision"}, {"category": "sphere tetrahedron intersection", "description": "computational geometry sphere tetrahedron intersection", "location": "/code/computational_geometry/src/sphere_tetrahedron_intersection"}, {"category": "sutherland hodgeman clipping", "description": "computational geometry sutherland hodgeman clipping", "location": "/code/computational_geometry/src/sutherland_hodgeman_clipping"}, {"category": "chans algorithm", "description": "computational geometry chans algorithm", "location": "/code/computational_geometry/src/chans_algorithm"}, {"category": "quickhull", "description": "computational geometry quickhull", "location": "/code/computational_geometry/src/quickhull"}, {"category": "bresenham line", "description": "computational geometry bresenham line", "location": "/code/computational_geometry/src/bresenham_line"}, {"category": "area of polygon", "description": "computational geometry area of polygon", "location": "/code/computational_geometry/src/area_of_polygon"}, {"category": "halfplane intersection", "description": "computational geometry halfplane intersection", "location": "/code/computational_geometry/src/halfplane_intersection"}, {"category": "2d separating axis test", "description": "computational geometry 2d separating axis test", "location": "/code/computational_geometry/src/2d_separating_axis_test"}, {"category": "jarvis march", "description": "computational geometry jarvis march", "location": "/code/computational_geometry/src/jarvis_march"}, {"category": "2d line intersection", "description": "computational geometry 2d line intersection", "location": "/code/computational_geometry/src/2d_line_intersection"}, {"category": "cohen sutherland lineclip", "description": "computational geometry cohen sutherland lineclip", "location": "/code/computational_geometry/src/cohen_sutherland_lineclip"}, {"category": "distance between points", "description": "computational geometry distance between points", "location": "/code/computational_geometry/src/distance_between_points"}, {"category": "graham scan", "description": "computational geometry graham scan", "location": "/code/computational_geometry/src/graham_scan"}, {"category": "string algorithms", "description": "code string algorithms", "location": "/code/string_algorithms"}, {"category": "test", "description": "string algorithms", "location": "/code/string_algorithms/test"}, {"category": "src", "description": "string algorithms", "location": "/code/string_algorithms/src"}, {"category": "password strength checker", "description": "string algorithms password strength checker", "location": "/code/string_algorithms/src/password_strength_checker"}, {"category": "remove dups", "description": "string algorithms remove dups", "location": "/code/string_algorithms/src/remove_dups"}, {"category": "aho corasick algorithm", "description": "string algorithms aho corasick algorithm", "location": "/code/string_algorithms/src/aho_corasick_algorithm"}, {"category": "trie pattern search", "description": "string algorithms trie pattern search", "location": "/code/string_algorithms/src/trie_pattern_search"}, {"category": "morse code", "description": "string algorithms morse code", "location": "/code/string_algorithms/src/morse_code"}, {"category": "finite automata", "description": "string algorithms finite automata", "location": "/code/string_algorithms/src/finite_automata"}, {"category": "C", "description": "finite automata C", "location": "/code/string_algorithms/src/finite_automata/C"}, {"category": "arithmetic on large numbers", "description": "string algorithms arithmetic on large numbers", "location": "/code/string_algorithms/src/arithmetic_on_large_numbers"}, {"category": "levenshtein distance", "description": "string algorithms levenshtein distance", "location": "/code/string_algorithms/src/levenshtein_distance"}, {"category": "suffix array", "description": "string algorithms suffix array", "location": "/code/string_algorithms/src/suffix_array"}, {"category": "kasai algorithm", "description": "string algorithms kasai algorithm", "location": "/code/string_algorithms/src/kasai_algorithm"}, {"category": "anagram search", "description": "string algorithms anagram search", "location": "/code/string_algorithms/src/anagram_search"}, {"category": "palindrome checker", "description": "string algorithms palindrome checker", "location": "/code/string_algorithms/src/palindrome_checker"}, {"category": "naive pattern search", "description": "string algorithms naive pattern search", "location": "/code/string_algorithms/src/naive_pattern_search"}, {"category": "z algorithm", "description": "string algorithms z algorithm", "location": "/code/string_algorithms/src/z_algorithm"}, {"category": "palindrome substring", "description": "string algorithms palindrome substring", "location": "/code/string_algorithms/src/palindrome_substring"}, {"category": "rabin karp algorithm", "description": "string algorithms rabin karp algorithm", "location": "/code/string_algorithms/src/rabin_karp_algorithm"}, {"category": "lipogram checker", "description": "string algorithms lipogram checker", "location": "/code/string_algorithms/src/lipogram_checker"}, {"category": "manachar algorithm", "description": "string algorithms manachar algorithm", "location": "/code/string_algorithms/src/manachar_algorithm"}, {"category": "pangram checker", "description": "string algorithms pangram checker", "location": "/code/string_algorithms/src/pangram_checker"}, {"category": "kmp algorithm", "description": "string algorithms kmp algorithm", "location": "/code/string_algorithms/src/kmp_algorithm"}, {"category": "boyer moore algorithm", "description": "string algorithms boyer moore algorithm", "location": "/code/string_algorithms/src/boyer_moore_algorithm"}, {"category": "search", "description": "code search", "location": "/code/search"}, {"category": "test", "description": "search", "location": "/code/search/test"}, {"category": "src", "description": "search", "location": "/code/search/src"}, {"category": "ternary search", "description": "search ternary search", "location": "/code/search/src/ternary_search"}, {"category": "fibonacci search", "description": "search fibonacci search", "location": "/code/search/src/fibonacci_search"}, {"category": "jump search", "description": "search jump search", "location": "/code/search/src/jump_search"}, {"category": "linear search", "description": "search linear search", "location": "/code/search/src/linear_search"}, {"category": "interpolation search", "description": "search interpolation search", "location": "/code/search/src/interpolation_search"}, {"category": "fuzzy search", "description": "search fuzzy search", "location": "/code/search/src/fuzzy_search"}, {"category": "binary search", "description": "search binary search", "location": "/code/search/src/binary_search"}, {"category": "exponential search", "description": "search exponential search", "location": "/code/search/src/exponential_search"}, {"category": "online challenges", "description": "code online challenges", "location": "/code/online_challenges"}, {"category": "test", "description": "online challenges", "location": "/code/online_challenges/test"}, {"category": "src", "description": "online challenges", "location": "/code/online_challenges/src"}, {"category": "project euler", "description": "online challenges project euler", "location": "/code/online_challenges/src/project_euler"}, {"category": "problem 002", "description": "project euler problem 002", "location": "/code/online_challenges/src/project_euler/problem_002"}, {"category": "problem 026", "description": "project euler problem 026", "location": "/code/online_challenges/src/project_euler/problem_026"}, {"category": "problem 008", "description": "project euler problem 008", "location": "/code/online_challenges/src/project_euler/problem_008"}, {"category": "problem 010", "description": "project euler problem 010", "location": "/code/online_challenges/src/project_euler/problem_010"}, {"category": "problem 028", "description": "project euler problem 028", "location": "/code/online_challenges/src/project_euler/problem_028"}, {"category": "problem 004", "description": "project euler problem 004", "location": "/code/online_challenges/src/project_euler/problem_004"}, {"category": "problem 006", "description": "project euler problem 006", "location": "/code/online_challenges/src/project_euler/problem_006"}, {"category": "problem 024", "description": "project euler problem 024", "location": "/code/online_challenges/src/project_euler/problem_024"}, {"category": "problem 021", "description": "project euler problem 021", "location": "/code/online_challenges/src/project_euler/problem_021"}, {"category": "problem 003", "description": "project euler problem 003", "location": "/code/online_challenges/src/project_euler/problem_003"}, {"category": "problem 016", "description": "project euler problem 016", "location": "/code/online_challenges/src/project_euler/problem_016"}, {"category": "problem 001", "description": "project euler problem 001", "location": "/code/online_challenges/src/project_euler/problem_001"}, {"category": "problem 036", "description": "project euler problem 036", "location": "/code/online_challenges/src/project_euler/problem_036"}, {"category": "problem 007", "description": "project euler problem 007", "location": "/code/online_challenges/src/project_euler/problem_007"}, {"category": "problem 014", "description": "project euler problem 014", "location": "/code/online_challenges/src/project_euler/problem_014"}, {"category": "problem 025", "description": "project euler problem 025", "location": "/code/online_challenges/src/project_euler/problem_025"}, {"category": "problem 037", "description": "project euler problem 037", "location": "/code/online_challenges/src/project_euler/problem_037"}, {"category": "problem 020", "description": "project euler problem 020", "location": "/code/online_challenges/src/project_euler/problem_020"}, {"category": "problem 009", "description": "project euler problem 009", "location": "/code/online_challenges/src/project_euler/problem_009"}, {"category": "problem 067", "description": "project euler problem 067", "location": "/code/online_challenges/src/project_euler/problem_067"}, {"category": "problem 022", "description": "project euler problem 022", "location": "/code/online_challenges/src/project_euler/problem_022"}, {"category": "problem 005", "description": "project euler problem 005", "location": "/code/online_challenges/src/project_euler/problem_005"}, {"category": "problem 034", "description": "project euler problem 034", "location": "/code/online_challenges/src/project_euler/problem_034"}, {"category": "problem 018", "description": "project euler problem 018", "location": "/code/online_challenges/src/project_euler/problem_018"}, {"category": "problem 013", "description": "project euler problem 013", "location": "/code/online_challenges/src/project_euler/problem_013"}, {"category": "problem 012", "description": "project euler problem 012", "location": "/code/online_challenges/src/project_euler/problem_012"}, {"category": "problem 102", "description": "project euler problem 102", "location": "/code/online_challenges/src/project_euler/problem_102"}, {"category": "problem 040", "description": "project euler problem 040", "location": "/code/online_challenges/src/project_euler/problem_040"}, {"category": "problem 019", "description": "project euler problem 019", "location": "/code/online_challenges/src/project_euler/problem_019"}, {"category": "rosalind", "description": "online challenges rosalind", "location": "/code/online_challenges/src/rosalind"}, {"category": "complement dna strand", "description": "rosalind complement dna strand", "location": "/code/online_challenges/src/rosalind/complement_dna_strand"}, {"category": "game theory", "description": "code game theory", "location": "/code/game_theory"}, {"category": "src", "description": "game theory", "location": "/code/game_theory/src"}, {"category": "game of nim win loss prediction", "description": "game theory game of nim win loss prediction", "location": "/code/game_theory/src/game_of_nim_win_loss_prediction"}, {"category": "grundy numbers kayle", "description": "game theory grundy numbers kayle", "location": "/code/game_theory/src/grundy_numbers_kayle"}, {"category": "game of nim next best move", "description": "game theory game of nim next best move", "location": "/code/game_theory/src/game_of_nim_next_best_move"}, {"category": "artificial intelligence", "description": "code artificial intelligence", "location": "/code/artificial_intelligence"}, {"category": "test", "description": "artificial intelligence", "location": "/code/artificial_intelligence/test"}, {"category": "src", "description": "artificial intelligence", "location": "/code/artificial_intelligence/src"}, {"category": "DBSCAN Clustering", "description": "artificial intelligence DBSCAN Clustering", "location": "/code/artificial_intelligence/src/DBSCAN_Clustering"}, {"category": "neural network", "description": "artificial intelligence neural network", "location": "/code/artificial_intelligence/src/neural_network"}, {"category": "perceptron", "description": "artificial intelligence perceptron", "location": "/code/artificial_intelligence/src/perceptron"}, {"category": "SAT", "description": "artificial intelligence SAT", "location": "/code/artificial_intelligence/src/SAT"}, {"category": "decision tree", "description": "artificial intelligence decision tree", "location": "/code/artificial_intelligence/src/decision_tree"}, {"category": "gaussian naive bayes", "description": "artificial intelligence gaussian naive bayes", "location": "/code/artificial_intelligence/src/gaussian_naive_bayes"}, {"category": "Linear Regression", "description": "artificial intelligence Linear Regression", "location": "/code/artificial_intelligence/src/Linear_Regression"}, {"category": "k Nearest Neighbours", "description": "artificial intelligence k Nearest Neighbours", "location": "/code/artificial_intelligence/src/k_Nearest_Neighbours"}, {"category": "TSP", "description": "artificial intelligence TSP", "location": "/code/artificial_intelligence/src/TSP"}, {"category": "autoenncoder", "description": "artificial intelligence autoenncoder", "location": "/code/artificial_intelligence/src/autoenncoder"}, {"category": "gradient boosting trees", "description": "artificial intelligence gradient boosting trees", "location": "/code/artificial_intelligence/src/gradient_boosting_trees"}, {"category": "gaussian mixture model", "description": "artificial intelligence gaussian mixture model", "location": "/code/artificial_intelligence/src/gaussian_mixture_model"}, {"category": "naive bayes", "description": "artificial intelligence naive bayes", "location": "/code/artificial_intelligence/src/naive_bayes"}, {"category": "support vector machine", "description": "artificial intelligence support vector machine", "location": "/code/artificial_intelligence/src/support_vector_machine"}, {"category": "nearest sequence memory", "description": "artificial intelligence nearest sequence memory", "location": "/code/artificial_intelligence/src/nearest_sequence_memory"}, {"category": "nsm MATLAB", "description": "nearest sequence memory nsm MATLAB", "location": "/code/artificial_intelligence/src/nearest_sequence_memory/nsm_MATLAB"}, {"category": "Logistic Regression", "description": "artificial intelligence Logistic Regression", "location": "/code/artificial_intelligence/src/Logistic_Regression"}, {"category": "restricted boltzmann machine", "description": "artificial intelligence restricted boltzmann machine", "location": "/code/artificial_intelligence/src/restricted_boltzmann_machine"}, {"category": "minimax", "description": "artificial intelligence minimax", "location": "/code/artificial_intelligence/src/minimax"}, {"category": "Neural Style Transfer", "description": "artificial intelligence Neural Style Transfer", "location": "/code/artificial_intelligence/src/Neural_Style_Transfer"}, {"category": "ISODATA Clustering", "description": "artificial intelligence ISODATA Clustering", "location": "/code/artificial_intelligence/src/ISODATA_Clustering"}, {"category": "t distributed stochastic neighbor embedding", "description": "artificial intelligence t distributed stochastic neighbor embedding", "location": "/code/artificial_intelligence/src/t_distributed_stochastic_neighbor_embedding"}, {"category": "a star", "description": "artificial intelligence a star", "location": "/code/artificial_intelligence/src/a_star"}, {"category": "q learning", "description": "artificial intelligence q learning", "location": "/code/artificial_intelligence/src/q_learning"}, {"category": "factorization machines", "description": "artificial intelligence factorization machines", "location": "/code/artificial_intelligence/src/factorization_machines"}, {"category": "image processing", "description": "artificial intelligence image processing", "location": "/code/artificial_intelligence/src/image_processing"}, {"category": "PrewittFilter", "description": "image processing PrewittFilter", "location": "/code/artificial_intelligence/src/image_processing/PrewittFilter"}, {"category": "SobelFilter", "description": "image processing SobelFilter", "location": "/code/artificial_intelligence/src/image_processing/SobelFilter"}, {"category": "Canny", "description": "image processing Canny", "location": "/code/artificial_intelligence/src/image_processing/Canny"}, {"category": "houghTransform", "description": "image processing houghTransform", "location": "/code/artificial_intelligence/src/image_processing/houghTransform"}, {"category": "Image Stitching", "description": "image processing Image Stitching", "location": "/code/artificial_intelligence/src/image_processing/Image_Stitching"}, {"category": "img", "description": "Image Stitching img", "location": "/code/artificial_intelligence/src/image_processing/Image_Stitching/img"}, {"category": "Erode dilate", "description": "image processing Erode dilate", "location": "/code/artificial_intelligence/src/image_processing/Erode_dilate"}, {"category": "random forests", "description": "artificial intelligence random forests", "location": "/code/artificial_intelligence/src/random_forests"}, {"category": "artificial neural network", "description": "artificial intelligence artificial neural network", "location": "/code/artificial_intelligence/src/artificial_neural_network"}, {"category": "principal component analysis", "description": "artificial intelligence principal component analysis", "location": "/code/artificial_intelligence/src/principal_component_analysis"}, {"category": "hierachical-clustering", "description": "artificial intelligence hierachical-clustering", "location": "/code/artificial_intelligence/src/hierachical-clustering"}, {"category": "convolutional neural network", "description": "artificial intelligence convolutional neural network", "location": "/code/artificial_intelligence/src/convolutional_neural_network"}, {"category": "k means", "description": "artificial intelligence k means", "location": "/code/artificial_intelligence/src/k_means"}, {"category": "square root decomposition", "description": "code square root decomposition", "location": "/code/square_root_decomposition"}, {"category": "test", "description": "square root decomposition", "location": "/code/square_root_decomposition/test"}, {"category": "src", "description": "square root decomposition", "location": "/code/square_root_decomposition/src"}, {"category": "MOs Algorithm", "description": "square root decomposition MOs Algorithm", "location": "/code/square_root_decomposition/src/MOs_Algorithm"}, {"category": "backtracking", "description": "code backtracking", "location": "/code/backtracking"}, {"category": "test", "description": "backtracking", "location": "/code/backtracking/test"}, {"category": "src", "description": "backtracking", "location": "/code/backtracking/src"}, {"category": "crossword puzzle", "description": "backtracking crossword puzzle", "location": "/code/backtracking/src/crossword_puzzle"}, {"category": "sudoku solve", "description": "backtracking sudoku solve", "location": "/code/backtracking/src/sudoku_solve"}, {"category": "rat in a maze", "description": "backtracking rat in a maze", "location": "/code/backtracking/src/rat_in_a_maze"}, {"category": "knight tour", "description": "backtracking knight tour", "location": "/code/backtracking/src/knight_tour"}, {"category": "algorithm-x", "description": "backtracking algorithm-x", "location": "/code/backtracking/src/algorithm-x"}, {"category": "partitions of set", "description": "backtracking partitions of set", "location": "/code/backtracking/src/partitions_of_set"}, {"category": "n queen", "description": "backtracking n queen", "location": "/code/backtracking/src/n_queen"}, {"category": "partitions of number", "description": "backtracking partitions of number", "location": "/code/backtracking/src/partitions_of_number"}, {"category": "subset sum", "description": "backtracking subset sum", "location": "/code/backtracking/src/subset_sum"}, {"category": "powerset", "description": "backtracking powerset", "location": "/code/backtracking/src/powerset"}, {"category": "number of ways in maze", "description": "backtracking number of ways in maze", "location": "/code/backtracking/src/number_of_ways_in_maze"}, {"category": "m coloring problem", "description": "backtracking m coloring problem", "location": "/code/backtracking/src/m_coloring_problem"}, {"category": "permutations of string", "description": "backtracking permutations of string", "location": "/code/backtracking/src/permutations_of_string"}] \ No newline at end of file diff --git a/build/lib/dumps/trie.p b/build/lib/dumps/trie.p deleted file mode 100755 index 505f1b0..0000000 --- a/build/lib/dumps/trie.p +++ /dev/null @@ -1,5596 +0,0 @@ -ccopy_reg -_reconstructor -p0 -(cpygtrie -CharTrie -p1 -c__builtin__ -object -p2 -Ntp3 -Rp4 -(dp5 -S'_root' -p6 -g0 -(cpygtrie -_Node -p7 -g2 -Ntp8 -Rp9 -(lp10 -I4 -aV. -p11 -aVg -p12 -aVi -p13 -aVt -p14 -aI01 -aI3 -aVh -p15 -aVu -p16 -aVb -p17 -aI01 -aI-7 -aI3 -aV1 -p18 -aV0 -p19 -aV2 -p20 -aI01 -aI-2 -aI2 -ag20 -aV8 -p21 -aI01 -aI-3 -aI1 -ag19 -aI01 -aI2 -ag18 -ag19 -aI01 -aI-1 -aI1 -aV3 -p22 -aI01 -aI-1 -aI1 -ag20 -aI01 -aI-1 -aI1 -aV4 -p23 -aI01 -aI-1 -aI1 -aV6 -p24 -aI01 -aI-1 -aI1 -aV9 -p25 -aI01 -aI-1 -aI1 -ag21 -aI01 -aI-2 -aI2 -ag19 -ag18 -aI01 -aI-1 -aI1 -ag22 -aI01 -aI-1 -aI1 -ag20 -aI01 -aI-1 -aI1 -aV5 -p26 -aI01 -aI-1 -aI1 -ag23 -aI01 -aI-1 -aI1 -aV7 -p27 -aI01 -aI-1 -aI1 -ag24 -aI01 -aI-1 -aI1 -ag25 -aI01 -aI-1 -aI1 -ag21 -aI01 -aI-2 -aI2 -ag22 -ag23 -aI01 -aI-1 -aI1 -ag27 -aI01 -aI-1 -aI1 -ag24 -aI01 -aI-2 -aI2 -ag20 -ag18 -aI01 -aI-1 -aI1 -ag19 -aI01 -aI-1 -aI1 -ag20 -aI01 -aI-1 -aI1 -ag26 -aI01 -aI-1 -aI1 -ag23 -aI01 -aI-1 -aI1 -ag24 -aI01 -aI-1 -aI1 -ag21 -aI01 -aI-2 -aI2 -ag23 -ag19 -aI01 -aI-2 -aI2 -ag24 -ag27 -aI01 -aI-3 -aI1 -ag20 -aI01 -aI3 -aVs -p28 -ag16 -aVm -p29 -aI01 -aI-3 -aI2 -ag26 -ag24 -aI01 -aI-2 -aI1 -aVd -p30 -aI01 -aI-2 -aI1 -ag26 -aI01 -aI-1 -aI1 -aVa -p31 -aI01 -aI1 -ag31 -aI01 -aI-1 -aI6 -aVc -p32 -aVy -p33 -ag32 -aVl -p34 -ag13 -ag32 -aI01 -aI-5 -aI6 -ag14 -ag13 -aVv -p35 -ag13 -ag14 -ag33 -aI01 -aI-7 -aI7 -ag17 -ag28 -ag14 -aVr -p36 -ag31 -ag32 -ag14 -aI01 -aI-7 -aI2 -aVe -p37 -ag28 -aI01 -aI-2 -aI6 -ag30 -ag31 -aVp -p38 -ag14 -ag37 -ag36 -aI01 -aI-5 -aI7 -aVj -p39 -ag31 -ag32 -ag37 -aVn -p40 -ag32 -ag33 -aI01 -aI-7 -aI1 -ag30 -aI01 -aI5 -ag13 -ag14 -ag13 -aVo -p41 -ag40 -aI01 -aI-7 -aI5 -aVf -p42 -ag42 -ag13 -ag40 -ag37 -aI01 -aI-5 -aI2 -ag15 -ag41 -aI01 -aI-2 -aI7 -ag29 -ag13 -ag32 -ag31 -ag17 -ag34 -ag37 -aI01 -aI-7 -aI6 -ag34 -ag13 -ag12 -ag40 -ag37 -ag30 -aI01 -aI-5 -aI7 -ag12 -ag41 -ag36 -ag13 -ag14 -ag15 -ag29 -aI01 -aI1 -ag28 -aI01 -aI-1 -aI2 -aV- -p43 -aVx -p44 -aI01 -aI-10 -aI1 -ag40 -aI01 -aI6 -ag31 -ag34 -ag33 -ag28 -ag13 -ag28 -aI01 -aI-5 -aI4 -ag12 -ag36 -ag31 -ag29 -aI01 -aI-5 -aI1 -ag14 -aI01 -aI-1 -aI1 -ag30 -aI01 -aI-2 -aI9 -ag28 -ag28 -ag13 -ag12 -ag40 -ag29 -ag37 -ag40 -ag14 -aI01 -aI-8 -aI3 -ag14 -ag31 -ag36 -aI01 -aI-4 -aI9 -ag36 -ag13 -ag14 -ag15 -ag29 -ag37 -ag14 -ag13 -ag32 -aI01 -aI-8 -aI2 -ag37 -ag31 -aI01 -aI-2 -aI3 -ag36 -ag31 -ag33 -aI01 -aI5 -ag28 -ag14 -ag31 -ag32 -aVk -p45 -aI01 -aI-8 -aI7 -ag29 -ag28 -ag14 -ag36 -ag41 -ag40 -ag12 -aI01 -aI-7 -aI8 -ag14 -ag13 -ag42 -ag13 -ag32 -ag13 -ag31 -ag34 -aI01 -aI-9 -aI11 -ag16 -ag14 -ag41 -ag37 -ag40 -ag40 -ag32 -ag41 -ag30 -ag37 -ag36 -aI01 -aI-8 -aI3 -ag45 -ag37 -ag33 -aI01 -aI-3 -aI4 -ag29 -ag31 -ag14 -ag31 -aI01 -aI-1 -aI2 -ag41 -ag40 -aI01 -aI-4 -aI6 -ag41 -ag36 -ag38 -ag15 -ag13 -ag32 -aI01 -aI-10 -aI4 -ag14 -ag45 -ag13 -ag40 -aI01 -aI-3 -aI4 -ag17 -ag31 -ag28 -ag15 -aI01 -aI-4 -aI6 -ag41 -ag29 -ag31 -ag14 -ag41 -ag40 -aI01 -aI-7 -aI6 -ag35 -ag37 -ag36 -ag31 -ag12 -ag37 -aI01 -aI-5 -aI1 -ag34 -aI01 -aI-2 -aI3 -ag44 -ag13 -ag28 -aI01 -aI-4 -aI1 -ag32 -aI01 -aI4 -ag31 -ag36 -ag34 -ag41 -aI01 -aI-3 -aI4 -ag37 -ag28 -ag31 -ag36 -aI01 -aI-4 -aI5 -ag14 -ag31 -ag34 -ag31 -ag40 -aI01 -aI-5 -aI3 -ag40 -ag40 -ag33 -aI01 -aI-4 -aI1 -aV# -p46 -aI01 -aI-1 -aI7 -ag37 -ag34 -ag34 -ag16 -ag34 -ag31 -ag36 -aI01 -aI-6 -aI6 -ag40 -ag14 -ag36 -ag41 -ag13 -ag30 -aI01 -aI-4 -aI3 -ag37 -ag36 -ag28 -aI01 -aI-6 -aI5 -ag13 -ag38 -ag15 -ag37 -ag36 -aI01 -aI-4 -aI6 -ag36 -ag32 -ag16 -ag34 -ag31 -ag36 -aI01 -aI-4 -aI2 -ag34 -ag37 -aI01 -aI-5 -aI4 -ag15 -ag31 -ag13 -ag40 -aI01 -aI-2 -aI7 -ag34 -ag34 -ag37 -ag40 -ag12 -ag37 -ag28 -aI01 -aI-7 -aI2 -ag40 -ag28 -aI01 -aI-1 -aI2 -ag12 -ag37 -aI01 -aI-2 -aI3 -ag40 -ag37 -ag34 -aI01 -aI-5 -aI3 -ag37 -ag32 -ag45 -aI01 -aI3 -ag13 -ag40 -ag12 -aI01 -aI-3 -aI2 -ag37 -ag36 -aI01 -aI-6 -aI2 -aV+ -p47 -ag47 -aI01 -aI-2 -aI7 -ag34 -ag13 -ag38 -ag38 -ag13 -ag40 -ag12 -aI01 -aI-5 -aI5 -ag29 -ag17 -ag13 -ag40 -ag12 -aI01 -aI-6 -aI8 -ag16 -ag28 -ag14 -ag37 -ag36 -ag13 -ag40 -ag12 -aI01 -aI-8 -aI5 -ag41 -ag28 -ag37 -ag28 -ag14 -aI01 -aI-3 -aI3 -ag16 -ag36 -ag37 -aI01 -aI-6 -aI10 -ag41 -ag37 -ag42 -ag42 -ag13 -ag32 -ag13 -ag37 -ag40 -ag14 -aI01 -aI-9 -aI4 -ag30 -ag13 -ag40 -ag12 -aI01 -aI-3 -aI1 -ag37 -aI01 -aI-2 -aI2 -ag13 -ag40 -aI01 -aI1 -ag28 -aI01 -aI-3 -aI3 -ag15 -ag37 -ag40 -aI01 -aI-3 -aI9 -ag29 -ag38 -ag36 -ag37 -ag28 -ag28 -ag13 -ag41 -ag40 -aI01 -aI-7 -aI7 -ag16 -ag14 -ag31 -ag14 -ag13 -ag41 -ag40 -aI01 -aI2 -ag31 -ag34 -aI01 -aI-7 -aI2 -ag37 -ag36 -aI01 -aI-4 -aI6 -ag34 -ag37 -ag29 -ag37 -ag40 -ag14 -aI01 -aI-6 -aI5 -ag41 -ag40 -ag37 -ag40 -ag14 -aI01 -aI1 -ag28 -aI01 -aI-7 -aI1 -ag17 -aI01 -aI-1 -aI3 -ag29 -ag41 -ag40 -aI01 -aI-3 -aI1 -ag37 -aI01 -aI-2 -aI6 -ag34 -ag16 -ag29 -ag40 -ag31 -ag36 -aI01 -aI-5 -aI6 -ag34 -ag13 -ag28 -ag13 -ag41 -ag40 -aI01 -aI-6 -aI5 -ag41 -ag36 -ag13 -ag40 -ag12 -aI01 -aI-6 -aI9 -ag40 -ag32 -ag16 -ag36 -ag36 -ag37 -ag40 -ag32 -ag33 -aI01 -aI-8 -aI6 -ag40 -ag37 -ag32 -ag14 -ag37 -ag30 -aI01 -aI-6 -aI4 -aVq -p48 -ag16 -ag37 -ag36 -aI01 -aI-4 -aI5 -ag28 -ag16 -ag29 -ag37 -ag36 -aI01 -aI-4 -aI2 -ag37 -ag32 -aI01 -aI-3 -aI7 -ag14 -ag13 -ag12 -ag16 -ag41 -ag16 -ag28 -aI01 -aI-7 -aI3 -aVw -p49 -ag31 -ag33 -aI01 -aI1 -ag28 -aI01 -aI-4 -aI7 -ag35 -ag37 -ag36 -ag28 -ag13 -ag41 -ag40 -aI01 -aI-4 -aI1 -ag14 -aI01 -aI-3 -aI7 -ag41 -ag34 -ag16 -ag14 -ag13 -ag41 -ag40 -aI01 -aI2 -ag31 -ag34 -aI01 -aI-11 -aI5 -ag38 -ag36 -ag13 -ag29 -ag37 -aI01 -aI-5 -aI4 -ag28 -ag29 -ag41 -ag28 -aI01 -aI-3 -aI1 -ag14 -aI01 -aI-2 -aI6 -ag36 -ag31 -ag28 -ag13 -ag32 -ag45 -aI01 -aI-6 -aI3 -ag16 -ag40 -ag14 -aI01 -aI3 -ag13 -ag40 -ag12 -aI01 -aI-6 -aI3 -ag35 -ag37 -ag36 -aI01 -aI-4 -aI2 -ag38 -ag38 -aI01 -aI-2 -aI5 -ag28 -ag15 -ag31 -ag36 -ag38 -aI01 -aI-5 -aI11 -ag36 -ag33 -ag38 -ag14 -ag41 -ag12 -ag36 -ag31 -ag38 -ag15 -ag33 -aI01 -aI-10 -aI7 -ag41 -ag28 -ag28 -ag49 -ag41 -ag36 -ag30 -aI01 -aI-8 -aI2 -ag16 -ag14 -aI01 -aI4 -ag14 -ag13 -ag40 -ag12 -aI01 -aI-6 -aI4 -ag33 -ag32 -ag34 -ag37 -aI01 -aI-5 -aI1 -ag17 -aI01 -aI11 -ag31 -ag32 -ag45 -ag14 -ag36 -ag31 -ag32 -ag45 -ag13 -ag40 -ag12 -aI01 -aI-9 -aI5 -ag41 -ag40 -ag13 -ag31 -ag40 -aI01 -aI-6 -aI8 -ag17 -ag33 -ag34 -ag41 -ag40 -ag13 -ag31 -ag40 -aI01 -aI-8 -aI1 -ag12 -aI01 -aI-1 -aI5 -ag34 -ag31 -ag40 -ag32 -ag37 -aI01 -aI1 -ag30 -aI01 -aI-6 -aI5 -ag40 -ag45 -ag37 -ag36 -ag28 -aI01 -aI-5 -aI3 -ag28 -ag37 -ag30 -aI01 -aI-3 -aI3 -ag33 -ag37 -ag28 -aI01 -aI-4 -aI3 -ag37 -ag31 -ag30 -aI01 -aI-2 -aI2 -ag28 -ag14 -aI01 -aI-2 -aI5 -ag34 -ag34 -ag29 -ag31 -ag40 -aI01 -aI-5 -aI5 -ag14 -ag49 -ag37 -ag37 -ag40 -aI01 -aI-6 -aI10 -ag13 -ag32 -ag41 -ag40 -ag40 -ag37 -ag32 -ag14 -ag37 -ag30 -aI01 -aI-9 -aI5 -ag12 -ag12 -ag37 -ag28 -ag14 -aI01 -aI-5 -aI4 -ag40 -ag31 -ag36 -ag33 -aI01 -aI-3 -aI5 -ag41 -ag29 -ag13 -ag31 -ag34 -aI01 -aI-6 -aI7 -ag38 -ag31 -ag36 -ag14 -ag13 -ag14 -ag37 -aI01 -aI-7 -aI6 -ag36 -ag14 -ag15 -ag30 -ag31 -ag33 -aI01 -aI-6 -aI1 -ag14 -aI01 -aI1 -ag28 -aI01 -aI-1 -aI4 -ag41 -ag40 -ag13 -ag32 -aI01 -aI-6 -aI4 -ag34 -ag31 -ag32 -ag45 -aI01 -aI-3 -aI3 -ag41 -ag41 -ag29 -aI01 -aI-4 -aI3 -ag41 -ag31 -ag28 -aI01 -aI-2 -aI2 -ag12 -ag41 -aI01 -aI-2 -aI7 -ag34 -ag14 -aVz -p50 -ag29 -ag31 -ag40 -ag40 -aI01 -aI-7 -aI6 -ag41 -ag28 -ag14 -ag13 -ag40 -ag12 -aI01 -aI-5 -aI4 -ag34 -ag37 -ag31 -ag40 -aI01 -aI-5 -aI5 -ag36 -ag16 -ag35 -ag45 -ag31 -aI01 -aI-5 -aI6 -ag16 -ag40 -ag30 -ag13 -ag40 -ag12 -aI01 -aI-6 -aI4 -ag14 -ag14 -ag41 -ag29 -aI01 -aI-4 -aI3 -ag33 -ag37 -ag36 -aI01 -aI-3 -aI1 -ag44 -aI01 -aI-2 -aI4 -ag36 -ag31 -ag13 -ag40 -aI01 -aI-2 -aI5 -ag40 -ag32 -ag15 -ag37 -ag28 -aI01 -aI-6 -aI4 -ag13 -ag31 -ag40 -ag28 -aI01 -aI-3 -aI3 -ag30 -ag12 -ag37 -aI01 -aI1 -ag28 -aI01 -aI-5 -aI5 -ag37 -ag31 -ag30 -ag14 -ag15 -aI01 -aI-4 -aI6 -ag28 -ag37 -ag40 -ag15 -ag31 -ag29 -aI01 -aI-7 -aI2 -ag41 -ag40 -aI01 -aI-3 -aI6 -ag16 -ag13 -ag34 -ag30 -ag37 -ag36 -aI01 -aI-5 -aI4 -ag32 -ag45 -ag37 -ag14 -aI01 -aI-4 -aI4 -ag17 -ag17 -ag34 -ag37 -aI01 -aI-4 -aI4 -ag42 -ag42 -ag37 -ag36 -aI01 -aI-5 -aI1 -ag33 -aI01 -aI2 -ag14 -ag37 -aI01 -aI-4 -aI4 -ag37 -ag30 -ag13 -ag14 -aI01 -aI-2 -aI2 -ag12 -ag37 -aI01 -aI1 -ag28 -aI01 -aI-4 -aI7 -ag12 -ag33 -ag38 -ag14 -ag13 -ag31 -ag40 -aI01 -aI-6 -aI1 -ag12 -aI01 -aI-2 -aI8 -ag29 -ag17 -ag37 -ag30 -ag30 -ag13 -ag40 -ag12 -aI01 -aI-7 -aI2 -ag30 -ag37 -aI01 -aI-3 -aI5 -ag34 -ag13 -ag44 -ag13 -ag36 -aI01 -aI-3 -aI8 -ag29 -ag13 -ag40 -ag31 -ag14 -ag13 -ag41 -ag40 -aI01 -aI-9 -aI5 -ag37 -ag29 -ag37 -ag40 -ag14 -aI01 -aI3 -ag31 -ag36 -ag33 -aI01 -aI-9 -aI7 -ag40 -ag32 -ag41 -ag30 -ag13 -ag40 -ag12 -aI01 -aI-6 -aI7 -ag30 -ag13 -ag31 -ag40 -ag37 -ag28 -ag28 -aI01 -aI-6 -aI2 -ag37 -ag30 -aI01 -aI-4 -aI5 -ag48 -ag16 -ag31 -ag34 -ag28 -aI01 -aI-5 -aI11 -ag36 -ag31 -ag14 -ag41 -ag28 -ag14 -ag15 -ag37 -ag40 -ag37 -ag28 -aI01 -aI-10 -aI3 -ag41 -ag30 -ag37 -aI01 -aI-4 -aI4 -ag16 -ag34 -ag37 -ag36 -aI01 -aI3 -ag13 -ag31 -ag40 -aI01 -aI-7 -aI9 -ag35 -ag31 -ag34 -ag16 -ag31 -ag14 -ag13 -ag41 -ag40 -aI01 -aI-8 -aI5 -ag37 -ag40 -ag13 -ag40 -ag12 -aI01 -aI-6 -aI6 -ag44 -ag31 -ag29 -ag38 -ag34 -ag37 -aI01 -aI-5 -aI8 -ag38 -ag36 -ag37 -ag28 -ag28 -ag13 -ag41 -ag40 -aI01 -aI-7 -aI11 -ag41 -ag40 -ag37 -ag40 -ag14 -ag13 -ag31 -ag14 -ag13 -ag41 -ag40 -aI01 -aI-4 -aI1 -ag34 -aI01 -aI-9 -aI7 -ag32 -ag34 -ag16 -ag28 -ag13 -ag41 -ag40 -aI01 -aI-9 -aI5 -ag30 -ag31 -ag13 -ag34 -ag33 -aI01 -aI-3 -aI2 -ag14 -ag31 -aI01 -aI-3 -aI5 -ag17 -ag28 -ag32 -ag31 -ag40 -aI01 -aI-5 -aI8 -ag37 -ag31 -ag30 -ag34 -ag41 -ag32 -ag45 -ag28 -aI01 -aI-7 -aI6 -ag32 -ag13 -ag28 -ag13 -ag41 -ag40 -aI01 -aI-5 -aI10 -ag41 -ag29 -ag38 -ag41 -ag28 -ag13 -ag14 -ag13 -ag41 -ag40 -aI01 -aI-9 -aI4 -ag30 -ag13 -ag40 -ag12 -aI01 -aI-6 -aI4 -ag12 -ag36 -ag37 -ag37 -aI01 -aI-4 -aI2 -ag29 -ag41 -aI01 -aI-2 -aI6 -ag34 -ag31 -ag40 -ag40 -ag41 -ag33 -aI01 -aI-5 -aI3 -ag37 -ag14 -ag37 -aI01 -aI-4 -aI3 -ag38 -ag14 -ag15 -aI01 -aI-3 -aI4 -ag28 -ag13 -ag12 -ag40 -aI01 -aI-3 -aI4 -ag32 -ag37 -ag40 -ag14 -aI01 -aI-5 -aI10 -ag36 -ag31 -ag40 -ag12 -ag37 -ag29 -ag37 -ag40 -ag14 -ag28 -aI01 -aI-10 -aI4 -ag14 -ag37 -ag32 -ag14 -aI01 -aI-2 -aI9 -ag36 -ag29 -ag13 -ag40 -ag13 -ag28 -ag14 -ag13 -ag32 -aI01 -aI-5 -aI1 -ag37 -aI01 -aI-8 -aI2 -ag42 -ag31 -aI01 -aI-2 -aI7 -ag13 -ag31 -ag29 -ag37 -ag14 -ag37 -ag36 -aI01 -aI-4 -aI3 -ag41 -ag40 -ag30 -aI01 -aI-5 -aI3 -ag12 -ag13 -ag14 -aI01 -aI2 -ag31 -ag34 -aI01 -aI-2 -aI1 -ag28 -aI01 -aI-4 -aI9 -ag42 -ag42 -ag37 -ag36 -ag37 -ag40 -ag32 -ag37 -ag28 -aI01 -aI-9 -aI6 -ag39 -ag45 -ag28 -ag14 -ag36 -ag31 -aI01 -aI-6 -aI4 -ag34 -ag31 -ag14 -ag37 -aI01 -aI-4 -aI9 -ag41 -ag38 -ag15 -ag31 -ag40 -ag14 -ag13 -ag40 -ag37 -aI01 -aI-9 -aI3 -ag40 -ag13 -ag32 -aI01 -aI-1 -aI2 -ag40 -ag12 -aI01 -aI-4 -aI6 -ag28 -ag39 -ag41 -ag13 -ag40 -ag14 -aI01 -aI-5 -aI5 -ag14 -ag31 -ag40 -ag32 -ag37 -aI01 -aI-4 -aI7 -ag36 -ag13 -ag17 -ag16 -ag14 -ag37 -ag30 -aI01 -aI-9 -aI6 -ag36 -ag37 -ag32 -ag14 -ag37 -ag30 -aI01 -aI-6 -aI6 -ag35 -ag13 -ag28 -ag13 -ag41 -ag40 -aI01 -aI-4 -aI2 -ag30 -ag37 -aI01 -aI1 -ag30 -aI01 -aI-6 -aI5 -ag41 -ag16 -ag17 -ag34 -ag33 -aI01 -aI-1 -aI1 -ag37 -aI01 -aI-5 -aI2 -ag40 -ag31 -aI01 -aI-2 -aI1 -ag38 -aI01 -aI-1 -aI7 -ag36 -ag41 -ag38 -ag38 -ag13 -ag40 -ag12 -aI01 -aI-7 -aI3 -ag16 -ag38 -ag28 -aI01 -aI-3 -aI6 -ag33 -ag40 -ag31 -ag29 -ag13 -ag32 -aI01 -aI-7 -aI8 -ag12 -ag31 -ag16 -ag28 -ag28 -ag13 -ag31 -ag40 -aI01 -aI-6 -aI2 -ag29 -ag37 -aI01 -aI-3 -aI2 -ag32 -ag30 -aI01 -aI-2 -aI7 -ag37 -ag41 -ag29 -ag37 -ag14 -ag36 -ag33 -aI01 -aI-6 -aI8 -ag40 -ag37 -ag36 -ag31 -ag14 -ag13 -ag41 -ag40 -aI01 -aI-6 -aI3 -ag14 -ag13 -ag32 -aI01 -aI-6 -aI4 -ag13 -ag42 -ag14 -ag28 -aI01 -aI-4 -aI1 -ag41 -aI01 -aI-1 -aI4 -ag40 -ag41 -ag29 -ag37 -aI01 -aI-4 -aI4 -ag36 -ag31 -ag38 -ag15 -aI01 -aI3 -ag13 -ag32 -ag28 -aI01 -aI-5 -aI5 -ag30 -ag13 -ag37 -ag40 -ag14 -aI01 -aI-5 -aI3 -ag15 -ag31 -ag29 -aI01 -aI-4 -aI4 -ag16 -ag40 -ag30 -ag33 -aI01 -aI-4 -aI6 -ag37 -ag31 -ag14 -ag37 -ag28 -ag14 -aI01 -aI-5 -aI3 -ag37 -ag30 -ag33 -aI01 -aI-5 -aI5 -ag16 -ag13 -ag30 -ag37 -ag28 -aI01 -aI-5 -aI2 -ag33 -ag29 -aI01 -aI-3 -aI4 -ag42 -ag31 -ag28 -ag14 -aI01 -aI-2 -aI4 -ag32 -ag31 -ag30 -ag37 -aI01 -aI-3 -aI6 -ag14 -ag41 -ag36 -ag13 -ag31 -ag34 -aI01 -aI-2 -aI6 -ag50 -ag31 -ag14 -ag13 -ag41 -ag40 -aI01 -aI-7 -aI1 -ag33 -aI01 -aI-1 -aI1 -ag28 -aI01 -aI-5 -aI4 -ag34 -ag32 -ag41 -ag40 -aI01 -aI-5 -aI1 -ag46 -aI01 -aI-1 -aI5 -ag37 -ag36 -ag29 -ag31 -ag14 -aI01 -aI1 -ag28 -aI01 -aI-5 -aI6 -ag37 -ag30 -ag17 -ag31 -ag32 -ag45 -aI01 -aI-6 -aI3 -ag40 -ag32 -ag37 -aI01 -aI-2 -aI4 -ag49 -ag13 -ag32 -ag45 -aI01 -aI-6 -aI5 -ag13 -ag40 -ag13 -ag14 -ag37 -aI01 -aI-3 -aI1 -ag30 -aI01 -aI-2 -aI3 -ag36 -ag28 -ag14 -aI01 -aI-3 -aI7 -ag17 -ag41 -ag40 -ag31 -ag32 -ag32 -ag13 -aI01 -aI-7 -aI2 -ag34 -ag34 -aI01 -aI-1 -aI3 -ag14 -ag37 -ag36 -aI01 -aI1 -ag28 -aI01 -aI-5 -aI5 -ag42 -ag14 -ag37 -ag37 -ag40 -aI01 -aI-6 -aI3 -ag34 -ag13 -ag38 -aI01 -aI-2 -aI3 -ag31 -ag28 -ag15 -aI01 -aI-3 -aI4 -ag37 -ag16 -ag36 -ag33 -aI01 -aI-4 -aI3 -ag41 -ag33 -ag30 -aI01 -aI-2 -aI1 -ag49 -aI01 -aI-3 -aI2 -ag41 -ag36 -aI01 -aI4 -ag37 -ag28 -ag14 -ag28 -aI01 -aI-4 -aI1 -ag30 -aI01 -aI-2 -aI5 -ag16 -ag36 -ag13 -ag37 -ag36 -aI01 -aI-6 -aI7 -ag36 -ag31 -ag32 -ag14 -ag13 -ag41 -ag40 -aI01 -aI2 -ag31 -ag34 -aI01 -aI-5 -aI3 -ag31 -ag34 -ag28 -aI01 -aI-6 -aI2 -ag37 -ag37 -aI01 -aI-2 -aI2 -ag41 -ag29 -aI01 -aI-3 -aI4 -ag16 -ag50 -ag50 -ag33 -aI01 -aI-3 -aI7 -ag34 -ag45 -ag37 -ag36 -ag28 -ag41 -ag40 -aI01 -aI-7 -aI17 -ag40 -ag32 -ag14 -ag13 -ag41 -ag40 -ag31 -ag34 -ag43 -ag38 -ag31 -ag14 -ag14 -ag37 -ag36 -ag40 -ag28 -aI01 -aI-19 -aI2 -ag13 -ag38 -aI01 -aI-1 -aI1 -ag28 -aI01 -aI5 -ag41 -ag30 -ag31 -ag14 -ag31 -aI01 -aI-6 -aI4 -ag29 -ag31 -ag12 -ag37 -aI01 -aI-3 -aI1 -ag12 -aI01 -aI-2 -aI7 -ag14 -ag37 -ag36 -ag31 -ag14 -ag41 -ag36 -aI01 -aI-7 -aI1 -ag40 -aI01 -aI8 -ag32 -ag36 -ag37 -ag31 -ag28 -ag13 -ag40 -ag12 -aI01 -aI-8 -aI9 -ag30 -ag37 -ag38 -ag37 -ag40 -ag30 -ag37 -ag40 -ag14 -aI01 -aI-9 -aI3 -ag42 -ag13 -ag44 -aI01 -aI-2 -aI1 -ag41 -aI01 -aI-2 -aI5 -ag41 -ag36 -ag30 -ag37 -ag36 -aI01 -aI-5 -aI3 -ag38 -ag16 -ag14 -aI01 -aI-3 -aI7 -ag28 -ag37 -ag36 -ag14 -ag13 -ag41 -ag40 -aI01 -aI-6 -aI9 -ag14 -ag31 -ag34 -ag34 -ag31 -ag14 -ag13 -ag41 -ag40 -aI01 -aI-10 -aI3 -ag14 -ag36 -ag41 -aI01 -aI-2 -aI10 -ag37 -ag36 -ag38 -ag41 -ag34 -ag31 -ag14 -ag13 -ag41 -ag40 -aI01 -aI-8 -aI7 -ag28 -ag37 -ag32 -ag14 -ag13 -ag41 -ag40 -aI01 -aI-7 -aI3 -ag35 -ag31 -ag34 -aI01 -aI-4 -aI8 -ag34 -ag34 -ag13 -ag12 -ag37 -ag40 -ag32 -ag37 -aI01 -aI-8 -aI4 -ag12 -ag36 -ag31 -ag34 -aI01 -aI-3 -aI2 -ag37 -ag36 -aI01 -aI-5 -aI7 -ag35 -ag37 -ag36 -ag28 -ag13 -ag41 -ag40 -aI01 -aI-3 -aI1 -ag37 -aI01 -aI-2 -aI1 -ag14 -aI01 -aI-6 -aI22 -ag15 -ag13 -ag37 -ag36 -ag31 -ag32 -ag15 -ag13 -ag32 -ag31 -ag34 -ag43 -ag32 -ag34 -ag16 -ag28 -ag14 -ag37 -ag36 -ag13 -ag40 -ag12 -aI01 -aI-20 -aI2 -ag34 -ag34 -aI01 -aI7 -ag32 -ag34 -ag13 -ag29 -ag17 -ag37 -ag36 -aI01 -aI-10 -aI6 -ag16 -ag42 -ag42 -ag29 -ag31 -ag40 -aI01 -aI-6 -aI3 -ag37 -ag31 -ag38 -aI01 -aI-1 -aI2 -ag30 -ag28 -aI01 -aI-3 -aI4 -ag13 -ag12 -ag15 -ag14 -aI01 -aI-5 -aI3 -ag31 -ag28 -ag15 -aI01 -aI1 -ag28 -aI01 -aI-3 -aI9 -ag29 -ag13 -ag34 -ag14 -ag41 -ag40 -ag13 -ag31 -ag40 -aI01 -aI-8 -aI4 -ag29 -ag13 -ag40 -ag12 -aI01 -aI-5 -aI7 -ag34 -ag42 -ag38 -ag34 -ag31 -ag40 -ag37 -aI01 -aI-7 -aI3 -ag40 -ag41 -ag13 -aI01 -aI-4 -aI7 -ag41 -ag38 -ag32 -ag36 -ag41 -ag42 -ag14 -aI01 -aI-6 -aI4 -ag36 -ag40 -ag37 -ag36 -aI01 -aI-4 -aI12 -ag16 -ag12 -ag15 -ag14 -ag36 -ag31 -ag40 -ag28 -ag42 -ag41 -ag36 -ag29 -aI01 -aI-12 -aI6 -ag30 -ag12 -ag37 -ag29 -ag31 -ag40 -aI01 -aI-6 -aI3 -ag41 -ag45 -ag28 -aI01 -aI-5 -aI1 -ag45 -aI01 -aI4 -ag31 -ag33 -ag34 -ag37 -aI01 -aI-3 -aI3 -ag28 -ag31 -ag13 -aI01 -aI-3 -aI7 -ag36 -ag31 -ag14 -ag28 -ag16 -ag17 -ag31 -aI01 -aI-6 -aI1 -ag38 -aI01 -aI-1 -aI3 -ag12 -ag37 -ag36 -aI01 -aI-5 -aI5 -ag37 -ag33 -ag38 -ag31 -ag30 -aI01 -aI-4 -aI6 -ag36 -ag17 -ag41 -ag28 -ag32 -ag15 -aI01 -aI-7 -aI1 -ag30 -aI01 -aI-1 -aI2 -ag29 -ag38 -aI01 -aI-2 -aI5 -ag41 -ag14 -ag34 -ag13 -ag40 -aI01 -aI-5 -aI7 -ag40 -ag31 -ag38 -ag28 -ag31 -ag32 -ag45 -aI01 -aI-6 -aI4 -ag13 -ag12 -ag15 -ag14 -aI01 -aI-5 -aI6 -ag36 -ag16 -ag28 -ag45 -ag31 -ag34 -aI01 -aI-6 -aI3 -ag16 -ag15 -ag40 -aI01 -aI-2 -aI2 -ag14 -ag14 -aI01 -aI-3 -aI2 -ag14 -ag15 -aI01 -aI-3 -aI7 -ag39 -ag31 -ag32 -ag32 -ag31 -ag36 -ag30 -aI01 -aI-4 -aI3 -ag41 -ag17 -ag13 -aI01 -aI-4 -aI4 -ag36 -ag35 -ag13 -ag28 -aI01 -aI-4 -aI2 -ag35 -ag31 -aI01 -aI6 -ag28 -ag32 -ag36 -ag13 -ag38 -ag14 -aI01 -aI-9 -aI3 -ag16 -ag29 -ag38 -aI01 -aI-3 -aI6 -ag41 -ag15 -ag40 -ag28 -ag41 -ag40 -aI01 -aI-5 -aI6 -ag28 -ag37 -ag38 -ag15 -ag16 -ag28 -aI01 -aI-6 -aI1 -ag17 -aI01 -aI-3 -aI1 -ag29 -aI01 -aI2 -ag31 -ag32 -aI01 -aI4 -ag15 -ag13 -ag40 -ag37 -aI01 -aI1 -ag28 -aI01 -aI-6 -aI3 -ag12 -ag13 -ag32 -aI01 -aI-3 -aI2 -ag13 -ag40 -aI01 -aI-2 -aI2 -ag45 -ag37 -aI01 -aI-2 -aI6 -ag39 -ag41 -ag36 -ag13 -ag14 -ag33 -aI01 -aI-6 -aI6 -ag40 -ag31 -ag32 -ag15 -ag31 -ag36 -aI01 -aI-4 -aI6 -ag12 -ag37 -ag29 -ag37 -ag40 -ag14 -aI01 -aI-7 -aI9 -ag13 -ag38 -ag16 -ag34 -ag31 -ag14 -ag13 -ag41 -ag40 -aI01 -aI-10 -aI5 -ag38 -ag38 -ag13 -ag40 -ag12 -aI01 -aI-5 -aI3 -ag36 -ag32 -ag15 -aI01 -aI-3 -aI10 -ag14 -ag15 -ag37 -ag29 -ag31 -ag14 -ag13 -ag32 -ag31 -ag34 -aI01 -aI-9 -aI5 -ag32 -ag15 -ag13 -ag40 -ag12 -aI01 -aI-5 -aI3 -ag36 -ag13 -ag44 -aI01 -aI-3 -aI3 -ag34 -ag31 -ag17 -aI01 -aI-4 -aI1 -ag44 -aI01 -aI4 -ag13 -ag29 -ag16 -ag29 -aI01 -aI-5 -aI2 -ag50 -ag37 -aI01 -aI-3 -aI4 -ag37 -ag31 -ag40 -ag28 -aI01 -aI-3 -aI3 -ag36 -ag12 -ag37 -aI01 -aI-3 -aI4 -ag29 -ag41 -ag36 -ag33 -aI01 -aI-4 -aI4 -ag30 -ag13 -ag31 -ag40 -aI01 -aI11 -ag43 -ag41 -ag42 -ag43 -ag29 -ag37 -ag30 -ag13 -ag31 -ag40 -ag28 -aI01 -aI-15 -aI4 -ag14 -ag15 -ag41 -ag30 -aI01 -aI-5 -aI6 -ag13 -ag44 -ag14 -ag16 -ag36 -ag37 -aI01 -aI-5 -aI4 -ag36 -ag36 -ag41 -ag36 -aI01 -aI-4 -aI4 -ag34 -ag34 -ag37 -ag36 -aI01 -aI-4 -aI1 -ag40 -aI01 -aI4 -ag13 -ag29 -ag31 -ag44 -aI01 -aI-2 -aI2 -ag16 -ag29 -aI01 -aI-6 -aI1 -ag34 -aI01 -aI-1 -aI4 -ag41 -ag30 -ag37 -ag34 -aI01 -aI-2 -aI4 -ag16 -ag34 -ag31 -ag36 -aI01 -aI-5 -aI3 -ag41 -ag36 -ag37 -aI01 -aI-3 -aI6 -ag40 -ag13 -ag14 -ag41 -ag36 -ag28 -aI01 -aI-5 -aI2 -ag14 -ag37 -aI01 -aI-3 -aI1 -ag28 -aI01 -aI-1 -aI3 -ag36 -ag28 -ag37 -aI01 -aI-2 -aI4 -ag40 -ag13 -ag40 -ag12 -aI01 -aI-5 -aI2 -ag35 -ag37 -aI01 -aI-3 -aI2 -ag28 -ag14 -aI01 -aI-2 -aI4 -ag16 -ag34 -ag14 -ag13 -aI01 -aI9 -ag38 -ag34 -ag13 -ag32 -ag31 -ag14 -ag13 -ag41 -ag40 -aI01 -aI-7 -aI1 -ag33 -aI01 -aI-3 -aI3 -ag49 -ag31 -ag33 -aI01 -aI-6 -aI4 -ag14 -ag16 -ag31 -ag34 -aI01 -aI-6 -aI9 -ag34 -ag31 -ag38 -ag13 -ag40 -ag30 -ag36 -ag41 -ag29 -aI01 -aI-7 -aI7 -ag36 -ag12 -ag36 -ag31 -ag40 -ag12 -ag37 -aI01 -aI-5 -aI1 -ag37 -aI01 -aI2 -ag28 -ag14 -aI01 -aI-2 -aI1 -ag36 -aI01 -aI-4 -aI6 -ag40 -ag12 -ag14 -ag41 -ag40 -ag28 -aI01 -aI-7 -aI2 -ag32 -ag29 -aI01 -aI-2 -aI3 -ag37 -ag31 -ag38 -aI01 -aI-1 -aI2 -ag28 -ag14 -aI01 -aI-2 -aI5 -ag36 -ag40 -ag13 -ag40 -ag12 -aI01 -aI-6 -aI11 -ag44 -ag13 -ag32 -ag41 -ag12 -ag36 -ag31 -ag38 -ag15 -ag13 -ag32 -aI01 -aI-11 -aI3 -ag35 -ag37 -ag34 -aI01 -aI-1 -aI7 -ag40 -ag28 -ag15 -ag14 -ag37 -ag13 -ag40 -aI01 -aI-9 -aI14 -ag29 -ag38 -ag37 -ag34 -ag43 -ag50 -ag13 -ag35 -ag43 -ag49 -ag37 -ag34 -ag32 -ag15 -aI01 -aI-14 -aI2 -ag42 -ag14 -aI01 -aI3 -ag13 -ag28 -ag14 -aI01 -aI-6 -aI7 -ag13 -ag38 -ag41 -ag12 -ag36 -ag31 -ag29 -aI01 -aI-6 -aI2 -ag28 -ag38 -aI01 -aI-1 -aI1 -ag14 -aI01 -aI1 -ag28 -aI01 -aI-3 -aI2 -ag42 -ag37 -aI01 -aI-2 -aI4 -ag14 -ag14 -ag34 -ag37 -aI01 -aI-4 -aI2 -ag40 -ag37 -aI01 -aI2 -ag31 -ag36 -aI01 -aI-2 -aI4 -ag32 -ag34 -ag13 -ag38 -aI01 -aI-5 -aI3 -ag45 -ag37 -ag30 -aI01 -aI4 -ag34 -ag13 -ag28 -ag14 -aI01 -aI-7 -aI2 -ag16 -ag44 -aI01 -aI-4 -aI3 -ag41 -ag28 -ag28 -aI01 -aI1 -ag33 -aI01 -aI-1 -aI4 -ag34 -ag37 -ag28 -ag28 -aI01 -aI-6 -aI1 -ag12 -aI01 -aI5 -ag13 -ag28 -ag14 -ag13 -ag32 -aI01 -aI-5 -aI1 -ag28 -aI01 -aI-2 -aI4 -ag40 -ag37 -ag34 -ag33 -aI01 -aI-3 -aI4 -ag12 -ag37 -ag28 -ag14 -aI01 -aI-6 -aI4 -ag16 -ag32 -ag31 -ag28 -aI01 -aI-2 -aI2 -ag45 -ag33 -aI01 -aI-5 -aI8 -ag41 -ag17 -ag28 -ag37 -ag36 -ag35 -ag37 -ag36 -aI01 -aI-6 -aI5 -ag39 -ag37 -ag32 -ag14 -ag28 -aI01 -aI-6 -aI1 -ag42 -aI01 -aI-1 -aI2 -ag41 -ag38 -aI01 -aI-2 -aI1 -ag40 -aI01 -aI2 -ag37 -ag28 -aI01 -aI-2 -aI4 -ag34 -ag13 -ag40 -ag37 -aI01 -aI-5 -aI9 -ag38 -ag37 -ag36 -ag31 -ag14 -ag13 -ag41 -ag40 -ag28 -aI01 -aI-3 -aI2 -ag40 -ag12 -aI01 -aI-3 -aI2 -ag41 -ag36 -aI01 -aI-6 -aI5 -ag14 -ag13 -ag29 -ag31 -ag34 -aI01 -aI-6 -aI5 -ag36 -ag13 -ag12 -ag13 -ag40 -aI01 -aI-4 -aI3 -ag30 -ag37 -ag36 -aI01 -aI-4 -aI5 -ag16 -ag14 -ag38 -ag16 -ag14 -aI01 -aI-5 -aI4 -ag14 -ag15 -ag37 -ag36 -aI01 -aI-5 -aI1 -ag40 -aI01 -aI4 -ag31 -ag13 -ag35 -ag37 -aI01 -aI-4 -aI6 -ag37 -ag31 -ag36 -ag37 -ag28 -ag14 -aI01 -aI-5 -aI6 -ag13 -ag12 -ag15 -ag17 -ag41 -ag36 -aI01 -aI-1 -aI3 -ag16 -ag36 -ag28 -aI01 -aI-8 -aI4 -ag16 -ag36 -ag31 -ag34 -aI01 -aI-3 -aI4 -ag29 -ag31 -ag40 -ag40 -aI01 -aI-5 -aI5 -ag14 -ag49 -ag41 -ag36 -ag45 -aI01 -aI3 -ag13 -ag40 -ag12 -aI01 -aI-8 -aI4 -ag49 -ag29 -ag31 -ag40 -aI01 -aI-3 -aI3 -ag14 -ag41 -ag40 -aI01 -aI-4 -aI2 -ag44 -ag14 -aI01 -aI-3 -aI2 -ag13 -ag29 -aI01 -aI-2 -aI1 -ag41 -aI01 -aI4 -ag17 -ag13 -ag34 -ag13 -aI01 -aI-4 -aI2 -ag30 -ag37 -aI01 -aI-2 -aI14 -ag40 -ag30 -ag37 -ag14 -ag37 -ag36 -ag29 -ag13 -ag40 -ag13 -ag28 -ag14 -ag13 -ag32 -aI01 -aI-15 -aI2 -ag28 -ag29 -aI01 -aI-2 -aI5 -ag16 -ag29 -ag17 -ag37 -ag36 -aI01 -aI1 -ag28 -aI01 -aI-4 -aI4 -ag37 -ag36 -ag13 -ag32 -aI01 -aI2 -ag31 -ag34 -aI01 -aI-9 -aI1 -ag48 -aI01 -aI4 -ag16 -ag13 -ag32 -ag45 -aI01 -aI4 -ag15 -ag16 -ag34 -ag34 -aI01 -aI-7 -aI2 -ag31 -ag30 -aI01 -aI-2 -aI3 -ag37 -ag37 -ag40 -aI01 -aI-2 -aI2 -ag16 -ag37 -aI01 -aI-5 -aI4 -ag38 -ag31 -ag32 -ag45 -aI01 -aI9 -ag37 -ag14 -ag28 -ag40 -ag13 -ag42 -ag42 -ag37 -ag36 -aI01 -aI-11 -aI2 -ag13 -ag36 -aI01 -aI3 -ag13 -ag40 -ag12 -aI01 -aI-4 -aI2 -ag40 -ag14 -aI01 -aI-3 -aI9 -ag34 -ag13 -ag40 -ag30 -ag36 -ag41 -ag29 -ag13 -ag32 -aI01 -aI-2 -aI1 -ag37 -aI01 -aI-8 -aI8 -ag40 -ag30 -ag13 -ag12 -ag13 -ag14 -ag31 -ag34 -aI01 -aI-7 -aI4 -ag12 -ag36 -ag31 -ag29 -aI01 -aI-5 -aI4 -ag28 -ag32 -ag31 -ag34 -aI01 -aI-3 -aI5 -ag28 -ag49 -ag41 -ag36 -ag30 -aI01 -aI-6 -aI5 -ag36 -ag31 -ag30 -ag41 -ag44 -aI01 -aI-4 -aI13 -ag37 -ag40 -ag14 -ag15 -ag37 -ag28 -ag13 -ag50 -ag31 -ag14 -ag13 -ag41 -ag40 -aI01 -aI-13 -aI2 -ag14 -ag33 -aI01 -aI-1 -aI5 -ag13 -ag14 -ag13 -ag41 -ag40 -aI01 -aI3 -ag13 -ag40 -ag12 -aI01 -aI-3 -aI1 -ag28 -aI01 -aI-8 -aI2 -ag14 -ag15 -aI01 -aI1 -ag28 -aI01 -aI-2 -aI4 -ag14 -ag37 -ag36 -ag40 -aI01 -aI1 -ag28 -aI01 -aI-7 -aI6 -ag37 -ag31 -ag28 -ag31 -ag40 -ag14 -aI01 -aI-5 -aI8 -ag36 -ag32 -ag37 -ag38 -ag14 -ag36 -ag41 -ag40 -aI01 -aI-7 -aI8 -ag29 -ag16 -ag14 -ag31 -ag14 -ag13 -ag41 -ag40 -aI01 -aI1 -ag28 -aI01 -aI-9 -aI1 -ag34 -aI01 -aI-1 -aI4 -ag42 -ag37 -ag32 -ag14 -aI01 -aI-5 -aI6 -ag14 -ag37 -ag36 -ag28 -ag41 -ag40 -aI01 -aI-7 -aI2 -ag13 -ag38 -aI01 -aI-1 -aI8 -ag12 -ag37 -ag41 -ag40 -ag15 -ag41 -ag34 -ag37 -aI01 -aI-9 -aI11 -ag15 -ag13 -ag34 -ag41 -ag28 -ag41 -ag38 -ag15 -ag37 -ag36 -ag28 -aI01 -aI-10 -aI1 -ag38 -aI01 -aI-2 -aI6 -ag41 -ag13 -ag28 -ag28 -ag41 -ag40 -aI01 -aI-4 -aI3 -ag40 -ag14 -ag28 -aI01 -aI-4 -aI7 -ag28 -ag14 -ag41 -ag36 -ag30 -ag37 -ag36 -aI01 -aI-5 -aI3 -ag42 -ag13 -ag44 -aI01 -aI-5 -aI3 -ag36 -ag14 -ag31 -aI01 -aI-3 -aI6 -ag34 -ag33 -ag17 -ag13 -ag16 -ag28 -aI01 -aI-4 -aI3 -ag12 -ag41 -ag40 -aI01 -aI-3 -aI6 -ag40 -ag41 -ag29 -ag13 -ag31 -ag34 -aI01 -aI1 -ag28 -aI01 -aI-8 -aI3 -ag13 -ag32 -ag33 -aI01 -aI-4 -aI3 -ag49 -ag37 -ag36 -aI01 -aI3 -ag28 -ag37 -ag14 -aI01 -aI-7 -aI3 -ag36 -ag13 -ag29 -aI01 -aI5 -ag31 -ag34 -ag13 -ag14 -ag33 -aI01 -aI-5 -aI1 -ag37 -aI01 -aI-2 -aI5 -ag41 -ag36 -ag13 -ag14 -ag33 -aI01 -aI-5 -aI6 -ag40 -ag32 -ag13 -ag38 -ag31 -ag34 -aI01 -aI-5 -aI1 -ag14 -aI01 -aI3 -ag13 -ag40 -ag12 -aI01 -aI-6 -aI11 -ag37 -ag49 -ag13 -ag14 -ag14 -ag42 -ag13 -ag34 -ag14 -ag37 -ag36 -aI01 -aI-10 -aI7 -ag30 -ag13 -ag32 -ag14 -ag13 -ag41 -ag40 -aI01 -aI-7 -aI5 -ag41 -ag36 -ag30 -ag37 -ag36 -aI01 -aI-5 -aI3 -ag42 -ag13 -ag44 -aI01 -aI-4 -aI8 -ag41 -ag32 -ag37 -ag28 -ag28 -ag13 -ag40 -ag12 -aI01 -aI-7 -aI4 -ag17 -ag34 -ag37 -ag29 -aI01 -aI-4 -aI5 -ag30 -ag16 -ag32 -ag37 -ag36 -aI01 -aI-5 -aI8 -ag12 -ag36 -ag31 -ag29 -ag29 -ag13 -ag40 -ag12 -aI01 -aI-8 -aI4 -ag39 -ag37 -ag32 -ag14 -aI01 -aI-4 -aI7 -ag14 -ag37 -ag32 -ag14 -ag13 -ag41 -ag40 -aI01 -aI-7 -aI2 -ag44 -ag33 -aI01 -aI-4 -aI3 -ag16 -ag28 -ag15 -aI01 -aI-2 -aI4 -ag50 -ag50 -ag34 -ag37 -aI01 -aI-5 -aI10 -ag33 -ag14 -ag15 -ag31 -ag12 -ag41 -ag36 -ag37 -ag31 -ag40 -aI01 -aI-7 -aI2 -ag41 -ag40 -aI01 -aI-6 -aI1 -ag28 -aI01 -aI7 -ag31 -ag29 -ag38 -ag34 -ag13 -ag40 -ag12 -aI01 -aI-3 -aI1 -ag37 -aI01 -aI-3 -aI1 -ag37 -aI01 -aI-2 -aI6 -ag34 -ag37 -ag28 -ag29 -ag31 -ag40 -aI01 -aI-6 -aI1 -ag14 -aI01 -aI-2 -aI4 -ag32 -ag31 -ag34 -ag31 -aI01 -aI-2 -aI1 -ag40 -aI01 -aI-2 -aI8 -ag15 -ag37 -ag30 -ag16 -ag34 -ag13 -ag40 -ag12 -aI01 -aI-8 -aI5 -ag36 -ag13 -ag38 -ag14 -ag28 -aI01 -aI-6 -aI5 -ag37 -ag31 -ag36 -ag32 -ag15 -aI01 -aI-4 -aI2 -ag37 -ag45 -aI01 -aI-2 -aI5 -ag12 -ag29 -ag37 -ag40 -ag14 -aI01 -aI2 -ag37 -ag30 -aI01 -aI-7 -aI7 -ag34 -ag37 -ag32 -ag14 -ag13 -ag41 -ag40 -aI01 -aI-7 -aI8 -ag48 -ag16 -ag37 -ag40 -ag32 -ag13 -ag40 -ag12 -aI01 -aI-3 -aI1 -ag37 -aI01 -aI-6 -aI8 -ag38 -ag31 -ag36 -ag31 -ag14 -ag13 -ag40 -ag12 -aI01 -aI-8 -aI8 -ag36 -ag13 -ag31 -ag34 -ag13 -ag50 -ag37 -ag36 -aI01 -aI-7 -aI2 -ag35 -ag37 -aI01 -aI-3 -aI1 -ag14 -aI01 -aI-2 -aI4 -ag13 -ag37 -ag35 -ag37 -aI01 -aI-3 -aI2 -ag50 -ag37 -aI01 -aI-2 -aI8 -ag29 -ag13 -ag34 -ag31 -ag36 -ag13 -ag14 -ag33 -aI01 -aI-7 -aI5 -ag38 -ag28 -ag41 -ag40 -ag28 -aI01 -aI-6 -aI7 -ag12 -ag40 -ag31 -ag14 -ag16 -ag36 -ag37 -aI01 -aI-7 -aI4 -ag40 -ag12 -ag34 -ag33 -aI01 -aI-1 -aI4 -ag37 -ag14 -ag41 -ag40 -aI01 -aI-8 -aI2 -ag15 -ag31 -aI01 -aI3 -ag45 -ag37 -ag36 -aI01 -aI-4 -aI3 -ag37 -ag34 -ag34 -aI01 -aI-3 -aI5 -ag16 -ag42 -ag42 -ag34 -ag37 -aI01 -aI-5 -aI6 -ag41 -ag36 -ag14 -ag37 -ag28 -ag14 -aI01 -aI-7 -aI3 -ag45 -ag13 -ag38 -aI01 -aI-3 -aI7 -ag29 -ag31 -ag34 -ag34 -ag37 -ag28 -ag14 -aI01 -aI-7 -aI4 -ag34 -ag37 -ag37 -ag38 -aI01 -aI-4 -aI3 -ag41 -ag36 -ag14 -aI01 -aI3 -ag13 -ag40 -ag12 -aI01 -aI-3 -aI2 -ag37 -ag30 -aI01 -aI-4 -aI9 -ag17 -ag37 -ag34 -ag42 -ag13 -ag34 -ag14 -ag37 -ag36 -aI01 -aI-9 -aI6 -ag34 -ag30 -ag13 -ag37 -ag36 -ag28 -aI01 -aI-5 -aI13 -ag41 -ag35 -ag31 -ag33 -ag43 -ag28 -ag14 -ag36 -ag31 -ag28 -ag28 -ag37 -ag40 -aI01 -aI-13 -aI2 -ag35 -ag37 -aI01 -aI-3 -aI2 -ag42 -ag14 -aI01 -aI-3 -aI3 -ag48 -ag36 -ag14 -aI01 -aI-2 -aI6 -ag16 -ag31 -ag36 -ag13 -ag40 -ag12 -aI01 -aI-3 -aI1 -ag37 -aI01 -aI-5 -aI5 -ag38 -ag13 -ag36 -ag31 -ag34 -aI01 -aI-4 -aI3 -ag31 -ag32 -ag37 -aI01 -aI-2 -aI5 -ag40 -ag40 -ag13 -ag40 -ag12 -aI01 -aI-6 -aI3 -ag34 -ag13 -ag14 -aI01 -aI-2 -aI2 -ag31 -ag33 -aI01 -aI-3 -aI4 -ag15 -ag37 -ag36 -ag37 -aI01 -aI-5 -aI2 -ag16 -ag17 -aI01 -aI5 -ag31 -ag36 -ag36 -ag31 -ag33 -aI01 -aI-5 -aI8 -ag28 -ag37 -ag48 -ag16 -ag37 -ag40 -ag32 -ag37 -aI01 -aI-6 -aI1 -ag14 -aI01 -aI-2 -aI5 -ag14 -ag36 -ag13 -ag40 -ag12 -aI01 -aI-7 -aI4 -ag30 -ag41 -ag45 -ag16 -aI01 -aI-4 -aI4 -ag42 -ag42 -ag13 -ag44 -aI01 -aI-4 -aI1 -ag29 -aI01 -aI-1 -aI5 -ag38 -ag38 -ag41 -ag36 -ag14 -aI01 -aI-4 -aI10 -ag37 -ag36 -ag28 -ag37 -ag48 -ag16 -ag37 -ag40 -ag32 -ag37 -aI01 -aI-11 -aI8 -ag14 -ag15 -ag37 -ag36 -ag34 -ag31 -ag40 -ag30 -aI01 -aI-9 -aI4 -ag14 -ag31 -ag32 -ag45 -aI01 -aI3 -ag13 -ag40 -ag12 -aI01 -aI-5 -aI1 -ag36 -aI01 -aI-2 -aI5 -ag37 -ag13 -ag40 -ag37 -ag36 -aI01 -aI-4 -aI5 -ag37 -ag38 -ag37 -ag28 -ag14 -aI01 -aI-6 -aI1 -ag30 -aI01 -aI-1 -aI7 -ag13 -ag14 -ag32 -ag15 -ag13 -ag40 -ag12 -aI01 -aI-7 -aI8 -ag41 -ag32 -ag15 -ag31 -ag28 -ag14 -ag13 -ag32 -aI01 -aI-7 -aI3 -ag41 -ag12 -ag37 -aI01 -aI-4 -aI4 -ag36 -ag13 -ag40 -ag12 -aI01 -aI-3 -aI7 -ag16 -ag32 -ag14 -ag16 -ag36 -ag37 -ag28 -aI01 -aI-7 -aI3 -ag37 -ag31 -ag29 -aI01 -aI-2 -aI4 -ag40 -ag12 -ag14 -ag15 -aI01 -aI-5 -aI5 -ag31 -ag28 -ag28 -ag37 -ag40 -aI01 -aI-4 -aI2 -ag40 -ag30 -aI01 -aI-3 -aI5 -ag41 -ag40 -ag12 -ag34 -ag33 -aI01 -aI-6 -aI3 -ag33 -ag34 -ag37 -aI01 -aI-4 -aI4 -ag49 -ag13 -ag42 -ag14 -aI01 -aI-3 -aI2 -ag31 -ag38 -aI01 -aI3 -ag38 -ag37 -ag36 -aI01 -aI-6 -aI5 -ag33 -ag28 -ag14 -ag37 -ag29 -aI01 -aI-6 -aI5 -ag36 -ag31 -ag17 -ag13 -ag40 -aI01 -aI-3 -aI3 -ag30 -ag13 -ag44 -aI01 -aI-3 -aI2 -ag13 -ag34 -aI01 -aI-2 -aI2 -ag40 -ag45 -aI01 -aI-1 -aI3 -ag30 -ag41 -ag29 -aI01 -aI4 -ag13 -ag50 -ag37 -ag30 -aI01 -aI-8 -aI5 -ag38 -ag15 -ag28 -ag41 -ag40 -aI01 -aI-5 -aI1 -ag14 -aI01 -aI-2 -aI6 -ag37 -ag31 -ag30 -ag37 -ag36 -ag28 -aI01 -aI-5 -aI6 -ag32 -ag37 -ag40 -ag14 -ag34 -ag33 -aI01 -aI-6 -aI1 -ag30 -aI01 -aI-1 -aI8 -ag12 -ag36 -ag37 -ag28 -ag28 -ag13 -ag41 -ag40 -aI01 -aI-8 -aI2 -ag42 -ag28 -aI01 -aI-2 -aI7 -ag29 -ag31 -ag13 -ag40 -ag13 -ag40 -ag12 -aI01 -aI-6 -aI4 -ag41 -ag14 -ag37 -ag28 -aI01 -aI-3 -aI2 -ag35 -ag37 -aI01 -aI-4 -aI12 -ag38 -ag36 -ag37 -ag28 -ag37 -ag40 -ag14 -ag31 -ag14 -ag13 -ag41 -ag40 -aI01 -aI-11 -aI6 -ag37 -ag31 -ag14 -ag13 -ag40 -ag12 -aI01 -aI-6 -aI4 -ag34 -ag31 -ag32 -ag37 -aI01 -aI-5 -aI7 -ag28 -ag37 -ag36 -ag35 -ag41 -ag13 -ag36 -aI01 -aI-6 -aI7 -ag14 -ag36 -ag13 -ag32 -ag14 -ag37 -ag30 -aI01 -aI-8 -aI5 -ag35 -ag37 -ag36 -ag28 -ag37 -aI01 -aI-6 -aI4 -ag13 -ag12 -ag15 -ag14 -aI01 -aI-4 -aI4 -ag41 -ag17 -ag13 -ag40 -aI01 -aI-3 -aI1 -ag30 -aI01 -aI-1 -aI3 -ag29 -ag31 -ag40 -aI01 -aI-3 -aI2 -ag41 -ag14 -aI01 -aI-2 -aI2 -ag38 -ag37 -aI01 -aI-2 -aI6 -ag28 -ag31 -ag34 -ag13 -ag40 -ag30 -aI01 -aI-6 -aI5 -ag16 -ag14 -ag13 -ag40 -ag37 -aI01 -aI-4 -aI2 -ag40 -ag30 -aI01 -aI-3 -aI3 -ag14 -ag18 -ag22 -aI01 -aI-2 -aI3 -ag31 -ag14 -ag37 -aI01 -aI-5 -aI2 -ag28 -ag31 -aI01 -aI-2 -aI6 -ag16 -ag28 -ag28 -ag13 -ag31 -ag40 -aI01 -aI-4 -aI1 -ag14 -aI01 -aI-2 -aI2 -ag17 -ag33 -aI01 -aI-2 -aI2 -ag34 -ag37 -aI01 -aI-2 -aI3 -ag40 -ag12 -ag37 -aI01 -aI-2 -aI7 -ag40 -ag13 -ag40 -ag12 -ag45 -ag37 -ag33 -aI01 -aI-10 -aI5 -ag16 -ag28 -ag13 -ag40 -ag12 -aI01 -aI-3 -aI2 -ag37 -ag30 -aI01 -aI-3 -aI8 -ag14 -ag13 -ag34 -ag13 -ag14 -ag13 -ag37 -ag28 -aI01 -aI-3 -aI1 -ag33 -aI01 -aI-6 -aI5 -ag40 -ag13 -ag48 -ag16 -ag37 -aI01 -aI-3 -aI2 -ag41 -ag40 -aI01 -aI-3 -aI8 -ag32 -ag36 -ag16 -ag28 -ag14 -ag13 -ag42 -ag33 -aI01 -aI-7 -aI9 -ag34 -ag31 -ag28 -ag28 -ag13 -ag42 -ag13 -ag37 -ag30 -aI01 -aI-10 -aI8 -ag30 -ag13 -ag36 -ag37 -ag32 -ag14 -ag37 -ag30 -aI01 -aI-10 -aI1 -ag14 -aI01 -aI6 -ag31 -ag44 -ag13 -ag32 -ag31 -ag17 -aI01 -aI-5 -aI3 -ag28 -ag45 -ag28 -aI01 -aI-3 -aI4 -ag36 -ag39 -ag31 -ag40 -aI01 -aI-4 -aI3 -ag17 -ag34 -ag37 -aI01 -aI-3 -aI2 -ag12 -ag28 -aI01 -aI-3 -aI3 -ag37 -ag28 -ag14 -aI01 -aI1 -ag28 -aI01 -aI-3 -aI5 -ag36 -ag40 -ag31 -ag36 -ag33 -aI01 -aI-5 -aI9 -ag14 -ag36 -ag31 -ag15 -ag37 -ag30 -ag36 -ag41 -ag40 -aI01 -aI-10 -aI3 -ag13 -ag29 -ag37 -aI01 -aI-2 -aI4 -ag34 -ag13 -ag40 -ag12 -aI01 -aI-5 -aI1 -ag15 -aI01 -aI3 -ag13 -ag36 -ag30 -aI01 -aI-3 -aI4 -ag36 -ag13 -ag32 -ag37 -aI01 -aI-3 -aI5 -ag37 -ag31 -ag30 -ag37 -ag30 -aI01 -aI-4 -aI1 -ag37 -aI01 -aI-3 -aI1 -ag37 -aI01 -aI3 -ag41 -ag36 -ag33 -aI01 -aI-1 -aI2 -ag37 -ag29 -aI01 -aI-6 -aI1 -ag41 -aI01 -aI9 -ag38 -ag41 -ag34 -ag41 -ag12 -ag13 -ag32 -ag31 -ag34 -aI01 -aI-9 -aI7 -ag45 -ag37 -ag40 -ag13 -ag50 -ag37 -ag36 -aI01 -aI-7 -aI2 -ag16 -ag36 -aI01 -aI6 -ag40 -ag31 -ag29 -ag37 -ag40 -ag14 -aI01 -aI-8 -aI5 -ag14 -ag13 -ag37 -ag40 -ag14 -aI01 -aI-5 -aI3 -ag49 -ag37 -ag36 -aI01 -aI-4 -aI2 -ag28 -ag38 -aI01 -aI-2 -aI12 -ag36 -ag13 -ag31 -ag40 -ag12 -ag16 -ag34 -ag31 -ag14 -ag13 -ag41 -ag40 -aI01 -aI-7 -aI2 -ag34 -ag37 -aI01 -aI-5 -aI4 -ag38 -ag34 -ag37 -ag14 -aI01 -aI-4 -aI7 -ag17 -ag41 -ag40 -ag31 -ag32 -ag32 -ag13 -aI01 -aI-7 -aI1 -ag37 -aI01 -aI-1 -aI8 -ag30 -ag13 -ag31 -ag12 -ag41 -ag40 -ag31 -ag34 -aI01 -aI-9 -aI6 -ag31 -ag13 -ag34 -ag13 -ag40 -ag12 -aI01 -aI-5 -aI6 -ag35 -ag37 -ag36 -ag28 -ag31 -ag34 -aI01 -aI-4 -aI5 -ag34 -ag34 -ag13 -ag40 -ag12 -aI01 -aI-7 -aI7 -ag40 -ag28 -ag13 -ag14 -ag13 -ag35 -ag37 -aI01 -aI-5 -aI8 -ag38 -ag41 -ag28 -ag13 -ag14 -ag13 -ag41 -ag40 -aI01 -aI-8 -aI3 -ag42 -ag37 -ag36 -aI01 -aI-2 -aI3 -ag41 -ag36 -ag29 -aI01 -aI5 -ag31 -ag14 -ag13 -ag41 -ag40 -aI01 -aI-12 -aI3 -ag37 -ag31 -ag38 -aI01 -aI-2 -aI1 -ag37 -aI01 -aI1 -ag28 -aI01 -aI-4 -aI4 -ag49 -ag13 -ag32 -ag37 -aI01 -aI-3 -aI1 -ag41 -aI01 -aI-2 -aI9 -ag33 -ag38 -ag37 -ag28 -ag32 -ag36 -ag13 -ag38 -ag14 -aI01 -aI-10 -aI4 -ag49 -ag13 -ag14 -ag15 -aI01 -aI-2 -aI1 -ag40 -aI01 -aI4 -ag30 -ag41 -ag49 -ag28 -aI01 -aI-6 -aI3 -ag31 -ag33 -ag28 -aI01 -aI-2 -aI6 -ag36 -ag28 -ag15 -ag31 -ag34 -ag34 -aI01 -aI-5 -aI4 -ag40 -ag41 -ag32 -ag45 -aI01 -aI-6 -aI6 -ag36 -ag13 -ag14 -ag37 -ag36 -ag28 -aI01 -aI-6 -aI5 -ag37 -ag13 -ag12 -ag15 -ag14 -aI01 -aI2 -ag37 -ag30 -aI01 -aI-8 -aI1 -ag35 -aI01 -aI6 -ag13 -ag36 -ag14 -ag16 -ag31 -ag34 -aI01 -aI-5 -aI2 -ag37 -ag49 -aI01 -aI-2 -aI6 -ag12 -ag37 -ag40 -ag37 -ag36 -ag37 -aI01 -aI-7 -aI7 -ag31 -ag34 -ag13 -ag30 -ag31 -ag14 -ag37 -aI01 -aI-5 -aI2 -ag16 -ag37 -aI01 -aI-3 -aI1 -ag40 -aI01 -aI-2 -aI5 -ag37 -ag32 -ag14 -ag41 -ag36 -aI01 -aI-4 -aI6 -ag36 -ag14 -ag13 -ag32 -ag37 -ag28 -aI01 -aI-4 -aI2 -ag37 -ag44 -aI01 -aI-5 -aI2 -ag41 -ag40 -aI01 -aI-3 -aI1 -ag33 -aI01 -aI3 -ag37 -ag31 -ag36 -aI01 -aI-4 -aI1 -ag44 -aI01 -aI2 -ag41 -ag36 -aI01 -aI-3 -aI1 -ag50 -aI01 -aI5 -ag13 -ag12 -ag50 -ag31 -ag12 -aI01 -aI-5 -aI5 -ag37 -ag36 -ag41 -ag37 -ag28 -aI01 -absS'_sorted' -p51 -I00 -sb. \ No newline at end of file diff --git a/build/lib/openfalcon.egg-info/PKG-INFO b/build/lib/openfalcon.egg-info/PKG-INFO deleted file mode 100644 index f9289af..0000000 --- a/build/lib/openfalcon.egg-info/PKG-INFO +++ /dev/null @@ -1,11 +0,0 @@ -Metadata-Version: 1.2 -Name: openfalcon -Version: 0.0.1 -Summary: Falcon is a library which allows you to use the Cosmos library in a convenient way. -Home-page: https://github.com/OpenGenus/falcon -Author: Opengenus Foundation -Author-email: team@opengenus.org -License: UNKNOWN -Description: UNKNOWN -Platform: UNKNOWN -Requires-Python: >3.5.2 diff --git a/build/lib/openfalcon.egg-info/SOURCES.txt b/build/lib/openfalcon.egg-info/SOURCES.txt deleted file mode 100644 index 104dc1a..0000000 --- a/build/lib/openfalcon.egg-info/SOURCES.txt +++ /dev/null @@ -1,28 +0,0 @@ -MANIFEST.in -Pipfile -Pipfile.lock -README.md -setup.cfg -setup.py -data/stats.md -data/stats.txt -dumps/catMap.p -dumps/category.json -dumps/trie.p -openfalcon.egg-info/PKG-INFO -openfalcon.egg-info/SOURCES.txt -openfalcon.egg-info/dependency_links.txt -openfalcon.egg-info/entry_points.txt -openfalcon.egg-info/requires.txt -openfalcon.egg-info/top_level.txt -services/__init__.py -services/category.py -services/code.py -services/getSearchResults.py -services/index.py -services/openfalcon.py -services/recommendationUtils.py -services/recommendations.py -services/search.py -services/stats.py -services/trie.py \ No newline at end of file diff --git a/build/lib/openfalcon.egg-info/dependency_links.txt b/build/lib/openfalcon.egg-info/dependency_links.txt deleted file mode 100644 index 8b13789..0000000 --- a/build/lib/openfalcon.egg-info/dependency_links.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/build/lib/openfalcon.egg-info/entry_points.txt b/build/lib/openfalcon.egg-info/entry_points.txt deleted file mode 100644 index 027b0db..0000000 --- a/build/lib/openfalcon.egg-info/entry_points.txt +++ /dev/null @@ -1,3 +0,0 @@ -[console_scripts] -openfalcon = services.openfalcon:main - diff --git a/build/lib/openfalcon.egg-info/requires.txt b/build/lib/openfalcon.egg-info/requires.txt deleted file mode 100644 index 508ae09..0000000 --- a/build/lib/openfalcon.egg-info/requires.txt +++ /dev/null @@ -1,3 +0,0 @@ -argparse -gitpython -pygtrie diff --git a/build/lib/openfalcon.egg-info/top_level.txt b/build/lib/openfalcon.egg-info/top_level.txt deleted file mode 100644 index 8b13789..0000000 --- a/build/lib/openfalcon.egg-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/build/lib/services/__init__.py b/build/lib/services/__init__.py deleted file mode 100755 index e69de29..0000000 diff --git a/build/lib/services/category.py b/build/lib/services/category.py deleted file mode 100755 index b4cac7d..0000000 --- a/build/lib/services/category.py +++ /dev/null @@ -1,45 +0,0 @@ -import os -import json - -repoDir = os.path.dirname(os.path.abspath(__file__)) +"/cosmos" -category = [] - -def dirParser(path): - dirs = path.split("/") - try: - if dirs[-2]== "test" or dirs[-2] == "src": - description = dirs[-3] + " " + dirs[-1] - elif dirs[-1]== "test" or dirs[-1] == "src": - description = dirs[-2] - else: - description = dirs[-2] + " " + dirs[-1] - except: - description = ' '.join(dirs) - - dirName = dirs[-1] - description = description.replace("_"," ") - dirName = dirName.replace("_"," ") - obj = { - "dirName" : dirName, - "description" : description - } - return obj -def path_to_json(path): - d = {'name': path} - if os.path.isdir(path): - parsedDetails = dirParser(os.path.join(path)) - location = os.path.join(path) - location = location.replace(repoDir,'') - temp = { - "description" : parsedDetails["description"], - "category" : parsedDetails["dirName"], - "location" : location - } - category.append(temp) - [path_to_json(os.path.join(path,x)) for x in os.listdir(path)] - return category - - -with open('dumps/category.json', 'w') as outfile: - json.dump(path_to_json(repoDir), outfile) - print("done") \ No newline at end of file diff --git a/build/lib/services/code.py b/build/lib/services/code.py deleted file mode 100755 index acf8fd9..0000000 --- a/build/lib/services/code.py +++ /dev/null @@ -1,93 +0,0 @@ -import json -import argparse -import os -import sys -import webbrowser -from . import getSearchResults -from . import recommendationUtils -import pathlib - - -ROOT_PATH = pathlib.Path(__file__).parents[1].as_posix() -category = json.load(open(ROOT_PATH+"/dumps/category.json", "r")) - - -def get_code(term, language, control): - # converts filesystem to a nested dict - dict_add = lambda x, y={}: dict_add(x[:-1], y).setdefault(x[-1], {}) if (x) else y - baseDict = {} - list( - map( - lambda x: dict_add(x, baseDict), - [path["location"].split("/") for path in category], - ) - ) - - searchResults = getSearchResults.getSearchResults(term) - print(searchResults) - term = searchResults[0]["location"].split("/")[-1] - - allPaths = [] - childPath = [] - recommendationUtils.getPath(term, baseDict, "", allPaths, childPath) - print(allPaths) - print(childPath) - if not len(childPath[0]): - path = searchResults[0]["location"] - path = "cosmos" + path - if not os.path.exists(path): - print("Clone the cosmos repo first into root of project") - sys.exit() - print(path) - arr = os.listdir(path) - print(arr) - if not language: - print("Available options") - for code in arr: - print(code.split(".")[-1]) - path = path + "/" + arr[0] - print(path) - if control == "open": - webbrowser.open(path) - else: - sys.exit() - - else: - for code in arr: - if code.split(".")[-1] == language: - print(code) - else: - print("similar categories") - for results in searchResults: - print(results["category"]) - - -def main(*args): - if len(args) == 0: - parser = argparse.ArgumentParser() - parser.add_argument("--term", help="The term to look for") - parser.add_argument( - "--language", default="cpp", help="enter the language extension" - ) - parser.add_argument( - "--control", - help="enter what to do with end file can be save,edit or delete", - ) - args = parser.parse_args() - term = args.term - language = args.language - control = args.control - else: - term = args[0] - language = args[1] - control = args[2] - - if not term: - print("Enter a valid term") - sys.exit() - - get_code(term, language, control) - - -if __name__ == "__main__": - main() diff --git a/build/lib/services/getSearchResults.py b/build/lib/services/getSearchResults.py deleted file mode 100755 index 828fd1e..0000000 --- a/build/lib/services/getSearchResults.py +++ /dev/null @@ -1,53 +0,0 @@ -import pickle -import collections -import json -import sys -import argparse -import pathlib - -ROOT_PATH = pathlib.Path(__file__).parents[1].as_posix() -trie = pickle.load(open( ROOT_PATH + "/dumps/trie.p", "rb")) -catMap = pickle.load(open(ROOT_PATH + "/dumps/catMap.p", "rb")) -category = json.load(open(ROOT_PATH + "/dumps/category.json", "r")) - - -def getSearchResults(searchTerm, display=None): - """ - part of search.py script, which implements - functionality similar to grep -ir - """ - searchTerms = searchTerm.split() - results = [] - newResults = [] - for terms in searchTerms: - terms = terms.lower() - if trie.get(terms): - for value in catMap[terms]: - results.append(value) - - counts = collections.Counter(results) - results = sorted(results, key=lambda x: -counts[x]) - searchResults = [] - [searchResults.append(x) for x in results if x not in searchResults] - - idx = 1 - if display: - for data in searchResults: - # print category[data]['description'] - newResults.append(category[data]['description']) - results.append(category[data]) - idx = idx+1 - if idx>int(display): - print ("\n".join(newResults)) - return results - - results = [] - newResults = [] - for data in searchResults: - newResults.append(category[data]['description']) - results.append(category[data]) - print ("\n".join(newResults)) - return results - - # if len(searchResults)==0: - # print "No results found for search" diff --git a/build/lib/services/index.py b/build/lib/services/index.py deleted file mode 100755 index d5b1a2c..0000000 --- a/build/lib/services/index.py +++ /dev/null @@ -1,27 +0,0 @@ -from git import Repo -import os -from pathlib import Path - - -class Cosmos: - def __init__(self, repo_url="https://github.com/OpenGenus/cosmos.git"): - self.git_url = repo_url - self.directory = "/" + self.git_url.split("/")[-1].split(".")[0] - self.repo_dir = os.path.dirname(os.path.abspath(__file__)) + self.directory - - def clone_repo(self): - p = Path(self.repo_dir) - if p.exists(): - return True - else: - try: - Repo.clone_from(self.git_url, self.repo_dir) - except Exception as e: - return False - print(e) - return True - - -if __name__ == "__main__": - cloner = Cosmos() - cloner.clone_repo() diff --git a/build/lib/services/openfalcon.py b/build/lib/services/openfalcon.py deleted file mode 100755 index d8be47e..0000000 --- a/build/lib/services/openfalcon.py +++ /dev/null @@ -1,111 +0,0 @@ -""" - ___ __ - ___ ___ ___ ___ / _/__ _/ /______ ___ -/ _ \/ _ \/ -_) _ \/ _/ _ `/ / __/ _ \/ _ | -\___/ .__/\__/_//_/_/ \_,_/_/\__/\___/_//_/ - /_/ - -An interface to all the services in falcon -""" - - -import argparse as arg -import sys -import json -import time -from . import search -from . import recommendations -from . import code -from . import stats -from . import index - -def writeToJSONFile(path, fileName, data): - target = './' + path + '/' + fileName + '.json' - with open(target, 'a+') as fp: - json.dump(data, fp) - -def init_search_module_args(parser): - parser.add_argument( - "--search", help="Search for occurence of a term in Cosmos", type=str - ) - parser.add_argument("--results", help="Number of search results", type=int) - - -def init_recommendation_module_args(parser): - parser.add_argument("--recommend", help="The recommendation term") - parser.add_argument("--top", help="Number of results to show", type=int) - parser.add_argument("--type", help="Type of recommendation can be parent/child/all") - - -def init_code_module_args(parser): - parser.add_argument( - "--code", help="Delete/Edit the code sections", action="store_true" - ) - parser.add_argument("--term", help="The term to look for") - parser.add_argument("--language", help="Enter the language extension") - parser.add_argument( - "--control", help="Enter what to do with end file can be save,edit or delete" - ) - - -def init_stats_module_args(parser): - parser.add_argument( - "--stats", help="Generate statstics of Cosmos repo", action="store_true" - ) - parser.add_argument( - "-f", - "--format", - default="md", - help='Ouput can be "txt" for text file and "md" for markdown or "all" for all formats', - ) - - -def init_index_module_args(parser): - parser.add_argument( - "-c", "--clone", action="store_true", help="Clone the cosmos repo" - ) - - -def main(): - parser = arg.ArgumentParser("openfalcon") - init_search_module_args(parser) - init_recommendation_module_args(parser) - init_code_module_args(parser) - init_stats_module_args(parser) - init_index_module_args(parser) - args = parser.parse_args() - - argparse_dict = vars(args) - t = time.time() - path = './data' - fileName = 'log' - jsonData = {} - jsonData['Time'] = t - jsonData['Command'] = argparse_dict - writeToJSONFile(path, fileName, jsonData) - - if len(sys.argv) == 1: - print("Please refer to help section using openfalcon --help / openfalcon -h") - sys.exit() - - if args.clone: - c_repo = index.Cosmos() - if not c_repo.clone_repo(): - print("Clone the cosmos repo manually") - exit(0) - if args.stats: - stats.main(args.format) - exit(0) - if args.search: - # results arg can only be used when search arg is present - if args.results and (args.search is None): - parser.error("--results requires --search argument") - sys.exit() - search.main(args.search, args.results) - if args.recommend: - recommendations.main(args.recommend, args.top, args.type) - if args.code: - if args.term is None or args.language is None or args.control is None: - parser.error("--code requires --term --language and --control arguments") - sys.exit() - code.main(args.term, args.language, args.control) diff --git a/build/lib/services/recommendationUtils.py b/build/lib/services/recommendationUtils.py deleted file mode 100755 index e7bc554..0000000 --- a/build/lib/services/recommendationUtils.py +++ /dev/null @@ -1,61 +0,0 @@ -def getMaxDepth(l): - maxDepth = 1 - for data in l: - maxDepth = max(maxDepth,len(data.split("/"))) - return maxDepth - -def getMaxDepthofDict(d, level=1): - if not isinstance(d, dict) or not d: - return level - return max(getMaxDepthofDict(d[k], level + 1) for k in d) - -def getPath(element, JSON, path, allPaths,childPath): - if element in JSON: - path = path + element #+ str(JSON[element]) - # global childPath - childPath.append(JSON[element]) - # print(childPath) - # print path - allPaths.append(path) - for key in JSON: - if isinstance(JSON[key], dict): - getPath(element, JSON[key],path + key + '/',allPaths,childPath) - -def getParentWeightedList(l): - maxDepth = getMaxDepth(l) - parentWeights = [] - for i in range(0,maxDepth): - parentWeights.append([]) - for data in l: - i=0 - for path in data.split("/"): - parentWeights[i].append(path) - i=i+1 - return parentWeights - -def getChildWeightedList(childPath): - try: - maxDepth = getMaxDepthofDict(childPath) - # print maxDepth - childWeights = [] - for i in range(0,maxDepth): - childWeights.append([]) - - for r, s in childPath.items(): - i=0 - q = [] - p = r - while True: - for k, v in s.items(): - # print('(%s,%s) ' % ('ROOT' if p == r else p, k)) - # if k != "test" and k != "src": - # print k.replace('_',' ') - childWeights[i].append(k) - if v: - q.append((k, v)) - if not q: - break - p, s = q.pop(0) - return childWeights - except: - return [] diff --git a/build/lib/services/recommendations.py b/build/lib/services/recommendations.py deleted file mode 100755 index d301678..0000000 --- a/build/lib/services/recommendations.py +++ /dev/null @@ -1,100 +0,0 @@ -import json -import argparse -import sys -from . import getSearchResults -from . import recommendationUtils -import pathlib - -ROOT_PATH = pathlib.Path(__file__).parents[1].as_posix() -category = json.load(open(ROOT_PATH+"/dumps/category.json", "r")) - - -def get_recommendation(searchResults, recTerm, top, types): - recTerm = searchResults[0]["location"].split("/")[-1] - # print recTerm - # converts filesystem to a nested dict - dict_add = lambda x, y={}: dict_add(x[:-1], y).setdefault(x[-1], {}) if (x) else y - baseDict = {} - list( - map( - lambda x: dict_add(x, baseDict), - [path["location"].split("/") for path in category], - ) - ) - - allPaths = [] - childPath = [] - recommendationUtils.getPath(recTerm, baseDict, "", allPaths, childPath) - if len(childPath) > 0: - childPath = childPath[0] - # print(allPaths) - # print(getMaxDepth(allPaths)) - recDict = [] - - print("childPath") - print(childPath) - if types != "child": - print("parent") - parentWeights = recommendationUtils.getParentWeightedList(allPaths) - maxParentWeight = len(parentWeights) - for parents in parentWeights: - for parent in parents: - recDict.append({parent: maxParentWeight}) - maxParentWeight = maxParentWeight - 1 - - # print childPath - if types != "parent": - childWeights = recommendationUtils.getChildWeightedList(childPath) - maxChildWeight = len(childWeights) + 1 - - for childs in childWeights: - for child in childs: - recDict.append({child: maxChildWeight}) - maxChildWeight = maxChildWeight - 1 - # print childWeights - - finalRecDict = sorted(recDict, key=lambda x: list(x.values()), reverse=True) - if top: - for i in range(0, int(top)): - print((finalRecDict[i])) - else: - for data in finalRecDict: - print(data) - - -def main(*args): - if len(args) == 0: - parser = argparse.ArgumentParser() - parser.add_argument("--recommend", help="The recommendation term") - parser.add_argument("--top", help="Number of results to show") - parser.add_argument( - "--type", help="type of recommendation can be parent/child/all" - ) - args = parser.parse_args() - recTerm = args.recommend - top = args.top - types = args.type - else: - recTerm = args[0] - top = args[1] - types = args[2] - - if recTerm == None: - print("please enter a term to get recommendation") - sys.exit() - - if types != "parent" and types != "all" and types != "child": - print("please enter correct type which can be child/parent/all") - sys.exit() - - searchResults = getSearchResults.getSearchResults(recTerm, None) - - if len(searchResults) == 0: - print("Nothing to recommend") - sys.exit() - - get_recommendation(searchResults, recTerm, top, types) - - -if __name__ == "__main__": - main() diff --git a/build/lib/services/search.py b/build/lib/services/search.py deleted file mode 100755 index 066d426..0000000 --- a/build/lib/services/search.py +++ /dev/null @@ -1,30 +0,0 @@ -import sys -import argparse -from . import getSearchResults - - -def main(*args): - """ - similar to grep -ir "term" in cosmos repo, - we try to find sentences having the given term - and display n-number of results - """ - if len(args) == 0: - parser = argparse.ArgumentParser() - parser.add_argument("--search", help="The search term") - parser.add_argument("--results", help="Required number of results") - args = parser.parse_args() - searchTerm = args.search - display = args.results - else: - searchTerm = args[0] - display = args[1] - if searchTerm == None: - print("Enter a valid Search Term") - sys.exit() - - print(getSearchResults.getSearchResults(searchTerm, display)) - - -if __name__ == "__main__": - main() diff --git a/build/lib/services/stats.py b/build/lib/services/stats.py deleted file mode 100755 index a690522..0000000 --- a/build/lib/services/stats.py +++ /dev/null @@ -1,304 +0,0 @@ -#!/usr/bin/env python3 - -import collections -import itertools -import pathlib -import argparse -import os -from datetime import datetime -from . import index - -paths = [] -suffixes=set() -name_max_len=0 -suffix_max_len=0 -totals = collections.defaultdict(int) -group_stats = collections.defaultdict(int) -last_group=None -sort_key=None -extension_map=dict() -original_paths = [] - -def init_globals(): - global paths, suffixes, name_max_len, suffix_max_len, totals, group_stats, last_group, sort_key,extension_map,original_paths - Path = collections.namedtuple("Entry", ("suffix", "group", "name")) - avoid_extensions = [ - "", - ".md", - ".png", - ".csv", - ".class", - ".data", - ".in", - ".jpeg", - ".jpg", - ".out", - ".textclipping", - ".properties", - ".txt", - ".sbt", - ] - avoid_dirs = ["project", "test", "img", "image", "images"] - paths = [] - original_paths = [] - for path in pathlib.Path(__file__).parents[0].joinpath("cosmos").glob("code/**/**/*"): - k = path.as_posix().split('/').index('code') - path = pathlib.Path("/".join(path.as_posix().split('/')[k:])) - if ( - path.suffix - and not any(elem in list(path.parts) for elem in avoid_dirs) - and path.suffix.lower() not in avoid_extensions - ): - original_paths.append(path.parts) - paths.append( - Path( - suffix=path.suffix.lstrip(".").lower(), - group=path.parts[1].replace("-", " ").replace("_", " "), - name=path.parts[-2].replace("-", " ").replace("_", " "), - ) - ) - - suffixes = {path.suffix for path in paths} - suffixes = sorted(suffixes - set(avoid_extensions)) - extension_map = { - "adb": "Ada", - "bf": "BrainFuck", - "c": "C", - "clj": "Clojure", - "cpp": "C++", - "cr": "Crisp", - "cs": "Visual C#", - "elm": "Elm", - "erl": "Erlang", - "ex": "Elixir", - "exs": "Elixir", - "f": "Fortran", - "fs": "Visual F#", - "go": "Golang", - "h": "C", - "hpp": "C++", - "hs": "Haskell", - "htm": "HTML", - "html": "HTML", - "ipynb": "Jupyter Notebook", - "java": "Java", - "jl": "Julia", - "js": "JavaScript", - "kt": "Kotlin", - "lua": "Lua", - "m": "Objective-C", - "ml": "ML", - "nim": "Nim", - "pde": "Processing Development Environment", - "php": "PHP", - "pl": "Perl", - "purs": "PureScript", - "py": "Python", - "rb": "Ruby", - "re": "Reason", - "rkt": "Racket", - "rs": "Rust", - "ruby": "Ruby", - "sc": "Scala", - "scala": "Scala", - "sh": "Shell Script", - "sml": "Standard ML", - "swift": "Swift", - "ts": "TypeScript", - "vb": "Visual Basic", - } - suffix_with_lang_name = set() - for ext in suffixes: - lang = extension_map.get(ext, ext.upper()) - suffix_with_lang_name.add(lang) - suffixes = list(sorted(suffix_with_lang_name)) - - name_max_len = max(max(len(path.group), len(path.name)) for path in paths) - suffix_max_len = max(len(suffix) for suffix in suffixes) - - totals = collections.defaultdict(int) - group_stats = collections.defaultdict(int) - last_group = None - sort_key = lambda path: (path.group, path.name) # noqa - paths = sorted(paths, key=sort_key) - - -def generate_txt(): - global paths, suffixes, name_max_len, suffix_max_len, totals, group_stats, last_group, sort_key,extension_map,original_paths - - print( - "This is the progress list of Cosmos | Updated on: {}".format( - datetime.today().strftime("%Y-%m-%d") - ) - ) - print() - - def print_group_stats(): - if group_stats: - print(" " * name_max_len, end=" ") - for suffix in suffixes: - print("-" * (suffix_max_len + 1), end=" ") - print() - print(" " * name_max_len, end=" ") - for suffix in suffixes: - print(str(group_stats[suffix]).rjust(suffix_max_len), end=" ") - print() - print() - - for (group, name), g in itertools.groupby(paths, key=sort_key): - if group != last_group: - print_group_stats() - print() - print(group.upper().ljust(name_max_len), end=" ") - for suffix in suffixes: - print(suffix.rjust(suffix_max_len), end=" ") - print() - print("-" * name_max_len, end="- ") - for suffix in suffixes: - print("-" * (suffix_max_len + 1), end=" ") - print() - last_group = group - group_stats = collections.defaultdict(int) - - print(name.ljust(name_max_len), end=" ") - alg_suffixes = {extension_map[p.suffix] for p in g} - for suffix in suffixes: - if suffix in alg_suffixes: - totals[suffix] += 1 - group_stats[suffix] += 1 - value = "x" - else: - value = "." - print(value.rjust(suffix_max_len), end=" ") - print() - - print_group_stats() - - print() - print("=" * name_max_len, end="= ") - for suffix in suffixes: - print("=" * (suffix_max_len + 1), end=" ") - print() - print("TOTALS:".rjust(name_max_len), end=" ") - for suffix in suffixes: - print(str(totals[suffix]).rjust(suffix_max_len), end=" ") - print() - - -def generate_markdown(): - global paths, suffixes, name_max_len, suffix_max_len, totals, group_stats, last_group, sort_key,extension_map,original_paths - - print( - "This is the progress list of [Cosmos](https://github.com/OpenGenus/cosmos/) | Updated on: {}".format( - datetime.today().strftime("%Y-%m-%d") - ) - ) - print() - - def print_group_stats(): - if group_stats: - print("| |", end="") - for suffix in suffixes: - print( - " {} |".format(str(group_stats[suffix]).rjust(suffix_max_len)), - end="", - ) - print() - print() - - for (group, name), g in itertools.groupby(paths, key=sort_key): - if group != last_group: - print_group_stats() - print() - category_dir = group.replace(" ", "_") - print( - "# [{}](https://github.com/OpenGenus/cosmos/tree/master/code/{})".format( - group.upper(), category_dir - ) - ) - print("| {} | ".format(group.upper().ljust(name_max_len)), end=" ") - for suffix in suffixes: - print("{} | ".format(suffix.rjust(suffix_max_len)), end=" ") - print() - print("| ", end="") - print("-" * name_max_len, end="- | ") - for suffix in suffixes: - print("-" * (suffix_max_len + 1), end=" | ") - print() - last_group = group - group_stats = collections.defaultdict(int) - - original_name = name.replace(" ", "_") - name_path = "" - for x in original_paths: - if x[-2] == original_name: - name_path = "https://github.com/OpenGenus/cosmos/tree/master/{}".format( - "".join([y + "/" for pos, y in enumerate(x) if pos != len(x) - 1]) - ) - break - - print("| [{}]({}) |".format(name, name_path), end=" ") - alg_suffixes = {extension_map[p.suffix] for p in g} - for suffix in suffixes: - if suffix in alg_suffixes: - totals[suffix] += 1 - group_stats[suffix] += 1 - value = "✔️" - else: - value = "." - print(" {} | ".format(value), end=" ") - print() - - print() - print() - tot_str = "TOTALS" - print("| {} |".format(tot_str), end=" ") - for suffix in suffixes: - print(" {} |".format(str(totals[suffix]).rjust(suffix_max_len)), end=" ") - print() - print("| ", end="") - print("-" * len(tot_str), end=" | ") - for suffix in suffixes: - print("-" * (suffix_max_len + 1), end=" | ") - print() - - -def main(*args): - #for x in pathlib.Path(__file__).parents[0].joinpath("cosmos").glob("code/**/**/*"): - # k = x.as_posix().split('/').index('code') - # y = pathlib.Path("/".join(x.as_posix().split('/')[k:])) - # print(y.as_posix()) - #exit(0) - c_repo = index.Cosmos() - if not c_repo.clone_repo(): - print("Clone the cosmos repo manually") - exit(0) - - init_globals() - - if len(args) == 0: - parser = argparse.ArgumentParser( - description="Get statstics in txt or markdown. Make sure you are in root of cosmos repo before running" - ) - parser.add_argument( - "-f", - "--format", - help='Ouput can be "txt" for text file and "md" for markdown or "all" for all formats', - default="txt", - ) - results = parser.parse_args() - choice = results.format - else: - choice = args[0] - - if choice == "txt": - generate_txt() - elif choice == "md": - generate_markdown() - else: - generate_txt() - generate_markdown() - - -if __name__ == "__main__": - main() diff --git a/build/lib/services/trie.py b/build/lib/services/trie.py deleted file mode 100755 index 031b326..0000000 --- a/build/lib/services/trie.py +++ /dev/null @@ -1,24 +0,0 @@ -import pygtrie -import json -import pickle - -category = json.load( open( "dumps/category.json", "r" ) ) -trie = pygtrie.CharTrie() -catMap = dict() -idx = int(0) -for data in category: - description = data["description"] - for word in description.split(): - word = word.lower() - trie[word] = True - if catMap.has_key(word): - catMap[word].append(idx) - else: - catMap[word] = [] - catMap[word].append(idx) - idx= idx +1 -pickle.dump( trie, open( "dumps/trie.p", "wb" )) -pickle.dump( catMap, open( "dumps/catMap.p","wb")) -# to load back -# u = pickle.load( open( "trie.p", "rb" ) ) to load back -# u = pickle.load( open( "dumps/catMap.json", "r" ) ) \ No newline at end of file diff --git a/dist/openfalcon-0.0.1-py3-none-any.whl b/dist/openfalcon-0.0.1-py3-none-any.whl deleted file mode 100644 index 327f815504dd2a95b6d3c798f17bf113a89174ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86936 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