├── (J Component) Final Report.pdf ├── .gitignore ├── Data Generating Scripts ├── mulitple_core_data_gen.py ├── multiple_thread_data_gen.py └── single_core_data_gen.py ├── Duplication Detecting Scripts ├── ddi.py ├── detect_duplicate_multiple_core.py ├── detect_duplicate_multiple_thread.py ├── detect_duplicate_single_core.py └── detect_duplicates.py ├── Generating Graph ├── joint_graph.py ├── multiple_core_graph.py ├── multiple_thread_analysis_graph.py ├── multiple_thread_graph.py └── single_core_graph.py ├── Graphs ├── 100vs500Threads.png ├── Analysing All 3 Together.png ├── multiple_core_execution.png ├── multiple_core_execution_sorted_time.png ├── muti_thread_execution.png └── single_core_execution.png ├── Images Processed TimeSheet.csv ├── README.md ├── images_in ├── black_and_white.jpg ├── blue_filter.jpg ├── blurred.jpg ├── cartoonized.jpg ├── cat_d1.jpeg ├── d1.jpeg ├── different-golden-gate-bridge.jpg ├── duplicate.jpg ├── exposured.jpg ├── george-washington-bridge.jpg ├── mixed_colors.jpg ├── old_photo.jpg ├── original_golden_bridge.jpg ├── overlay.jpg ├── portion_of_image.jpg ├── resized.jpg ├── rotated.jpg ├── sharpened.jpg ├── sunburst.jpg ├── t1.jpeg ├── t2.jpeg └── textured.jpg └── requirements.txt /(J Component) Final Report.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/searchformyusername/Duplicate-Images-Detection-using-Parallel-Processing/959492fcea64cfd3a980d71c1820b8c39d913913/(J Component) Final Report.pdf -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | pip-wheel-metadata/ 24 | share/python-wheels/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | MANIFEST 29 | 30 | # PyInstaller 31 | # Usually these files are written by a python script from a template 32 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 33 | *.manifest 34 | *.spec 35 | 36 | # Installer logs 37 | pip-log.txt 38 | pip-delete-this-directory.txt 39 | 40 | # Unit test / coverage reports 41 | htmlcov/ 42 | .tox/ 43 | .nox/ 44 | .coverage 45 | .coverage.* 46 | .cache 47 | nosetests.xml 48 | coverage.xml 49 | *.cover 50 | *.py,cover 51 | .hypothesis/ 52 | .pytest_cache/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | target/ 76 | 77 | # Jupyter Notebook 78 | .ipynb_checkpoints 79 | 80 | # IPython 81 | profile_default/ 82 | ipython_config.py 83 | 84 | # pyenv 85 | .python-version 86 | 87 | # pipenv 88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 91 | # install all needed dependencies. 92 | #Pipfile.lock 93 | 94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 95 | __pypackages__/ 96 | 97 | # Celery stuff 98 | celerybeat-schedule 99 | celerybeat.pid 100 | 101 | # SageMath parsed files 102 | *.sage.py 103 | 104 | # Environments 105 | .env 106 | .venv 107 | env/ 108 | venv/ 109 | ENV/ 110 | env.bak/ 111 | venv.bak/ 112 | 113 | # Spyder project settings 114 | .spyderproject 115 | .spyproject 116 | 117 | # Rope project settings 118 | .ropeproject 119 | 120 | # mkdocs documentation 121 | /site 122 | 123 | # mypy 124 | .mypy_cache/ 125 | .dmypy.json 126 | dmypy.json 127 | 128 | # Pyre type checker 129 | .pyre/ 130 | -------------------------------------------------------------------------------- /Data Generating Scripts/mulitple_core_data_gen.py: -------------------------------------------------------------------------------- 1 | import cv2 2 | import numpy as np 3 | import glob 4 | import time 5 | import multiprocessing 6 | import threading 7 | 8 | 9 | """ 10 | Multiprocessing 11 | """ 12 | 13 | 14 | image_name = 'c2.jpeg' # origional image path goes here 15 | original = cv2.imread(image_name) 16 | 17 | global image_count 18 | global start_time 19 | 20 | image_count = 0 21 | start_time = time.time() 22 | 23 | def find_duplicates(image_): 24 | global image_count 25 | global start_time 26 | try: 27 | image_to_compare = cv2.imread(image_) 28 | if original.shape == image_to_compare.shape: 29 | 30 | difference = cv2.subtract(original, image_to_compare) 31 | b, g, r = cv2.split(difference) 32 | 33 | if cv2.countNonZero(b) == 0 and cv2.countNonZero(g) == 0 and cv2.countNonZero(r) == 0: 34 | 35 | 36 | 37 | sift = cv2.xfeatures2d.SIFT_create() 38 | kp_1, desc_1 = sift.detectAndCompute(original, None) 39 | kp_2, desc_2 = sift.detectAndCompute(image_to_compare, None) 40 | 41 | index_params = dict(algorithm=0, trees=5) 42 | search_params = dict() 43 | flann = cv2.FlannBasedMatcher(index_params, search_params) 44 | 45 | matches = flann.knnMatch(desc_1, desc_2, k=2) 46 | 47 | good_points = [] 48 | for m, n in matches: 49 | if m.distance < 0.6*n.distance: 50 | good_points.append(m) 51 | 52 | # Define how similar they are 53 | number_keypoints = 0 54 | if len(kp_1) <= len(kp_2): 55 | number_keypoints = len(kp_1) 56 | else: 57 | number_keypoints = len(kp_2) 58 | image_count += 1 59 | return [image_count,round(time.time() - start_time, 5)] 60 | 61 | except Exception as e: 62 | pass 63 | 64 | 65 | 66 | if __name__ == '__main__': 67 | 68 | 69 | def filebrowser(ext='', directory=''): 70 | """ 71 | returns files with an extension 72 | """ 73 | return [f for f in glob.glob(f"{directory}**/*{ext}", recursive=True)] 74 | 75 | image_dir = filebrowser(ext='.jpeg', directory='') # directory='' ==> search images from current to inner sub-directories 76 | image_dir += filebrowser(ext='.jpg', directory='') 77 | ## print(image_dir) 78 | 79 | 80 | # # 1) Check if 2 images are equals | parallel on cores 81 | start_time = time.time() 82 | pool = multiprocessing.Pool() # Equal to number of cores | octa for this pc 83 | 84 | 85 | 86 | inputs = image_dir 87 | outputs_async = pool.map_async(find_duplicates, inputs) 88 | print(outputs_async.get()) 89 | 90 | print("--- %s seconds ---" % (time.time() - start_time)) 91 | print('Program Executed Completely') 92 | 93 | 94 | 95 | # [[1, 0.10107], [2, 0.19383], [3, 0.31848], [4, 0.47482], [5, 0.65649], [6, 0.76382], [7, 0.95013], [8, 0.95368], [9, 0.98859], [10, 0.99061], [11, 1.01883], [12, 1.04098], [13, 1.08378], [14, 1.11404], [15, 1.13865], [16, 1.16884], [17, 1.19401], [18, 1.22423], [19, 1.2847], [20, 1.31508], [21, 1.35555], [22, 1.38882], [23, 1.41898], [24, 1.52874], [25, 1.65397], [26, 1.78073], [27, 1.78374], [28, 1.81908], [29, 1.8211], [30, 1.83925], [31, 1.86391], [32, 1.89183], [33, 1.91856], [34, 1.944], [35, 1.97791], [36, 2.01082], [37, 2.03974], [38, 2.06966], [39, 2.09859], [40, 2.12602], [41, 2.15295], 96 | # [1, 0.04046], [2, 0.12827], [3, 0.13131], [4, 0.15142], [5, 0.15346], [6, 0.17156], [7, 0.19829], [8, 0.22833], [9, 0.26449], [10, 0.29481], [11, 0.32865], [12, 0.35843], [13, 0.38591], [14, 0.41872], [15, 0.44852], [16, 0.48483], [17, 0.50852], [18, 0.53881], [19, 0.62819], [20, 0.63379], [21, 0.64878], [22, 0.65386], [23, 0.77391], [24, 0.94368], [25, 1.10332], [26, 1.2443], [27, 1.37826], [28, 1.55343], [29, 1.66922], [30, 1.66922], [31, 1.69953], [32, 1.70357], [33, 1.72041], [34, 1.74334], [35, 1.7685], [36, 1.79331], [37, 1.81347], [38, 1.84929], [39, 1.87727], [40, 1.90371], [41, 1.93861], 97 | # [1, 0.03834], [2, 0.07619], [3, 0.10097], [4, 0.12913], [5, 0.22199], [6, 0.3615], [7, 0.47616], [8, 0.47616], [9, 0.51298], [10, 0.51298], [11, 0.53324], [12, 0.57362], [13, 0.59583], [14, 0.62143], [15, 0.64674], [16, 0.67694], [17, 0.71121], [18, 0.7456], [19, 0.78612], [20, 0.82114], [21, 0.86908], [22, 0.91129], [23, 0.94103], [24, 1.0463], [25, 1.0463], [26, 1.06897], [27, 1.07099], [28, 1.08909], [29, 1.11122], [30, 1.13635], [31, 1.16153], [32, 1.18619], [33, 1.21193], [34, 1.2412], [35, 1.26597], [36, 1.29636], [37, 1.32613], [38, 1.35596], [39, 1.386], [40, 1.4145], [41, 1.51553], 98 | # [1, 0.0151], [2, 0.03026], [3, 0.03026], [4, 0.05499], [5, 0.0777], [6, 0.10495], [7, 0.13014], [8, 0.16488], [9, 0.19061], [10, 0.22497], [11, 0.26132], [12, 0.29167], [13, 0.32205], [14, 0.35533], [15, 0.39088], [16, 0.43024], [17, 0.45041], [18, 0.47513], [19, 0.50187], [20, 0.5251], [21, 0.56043], [22, 0.58469], [23, 0.61536], [24, 0.65024], [25, 0.69608], [26, 0.73044], [27, 0.80043], [28, 0.83022], [29, 0.87617], [30, 0.95011], [31, 1.06997], [32, 1.1283], [33, 1.21491], [34, 1.28172], [35, 1.3504], [36, 1.46198], [37, 1.53466], [38, 1.64032], [39, 1.78561], [40, 1.84028], [41, 1.92926], 99 | # [1, 0.04946], [2, 0.06762], [3, 0.16037], [4, 0.28508], [5, 0.41111], [6, 0.50187], [7, 0.91027], [8, 0.94707], [9, 0.99995], [10, 1.05033], [11, 1.09009], [12, 1.1283], [13, 1.16501], [14, 1.20083], [15, 1.23106], [16, 1.26949], [17, 1.30191], [18, 1.35494], [19, 1.39109], [20, 1.84746], [21, 1.88438], [22, 2.08934], [23, 2.16214], [24, 2.18907], [25, 2.215], [26, 2.2519], [27, 2.28732], [28, 2.4913], [29, 2.53317], [30, 2.56908], [31, 2.59601], [32, 2.60398], [33, 2.68676], [34, 2.69525], [35, 2.72767], [36, 2.82242], [37, 2.91486], [38, 2.93515], [39, 2.95047], [40, 2.9807], [41, 3.01493], 100 | # [1, 0.04999], [2, 0.08025], [3, 0.11801], [4, 0.15028], [5, 0.17496], [6, 0.221], [7, 0.25124], [8, 0.90017], [9, 0.92991], [10, 0.95009], [11, 0.9994], [12, 1.02005], [13, 1.0503], [14, 1.1001], [15, 1.13832], [16, 1.16049], [17, 1.18517], [18, 1.21089], [19, 1.24128], [20, 1.27163], [21, 1.29984], [22, 1.34031], [23, 1.36531], [24, 1.39511], [25, 1.415], [26, 1.44377], [27, 1.46197], None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, 101 | # [1, 0.05244], [2, 0.33336], [3, 0.41253], [4, 0.45291], [5, 0.50497], [6, 0.58817], [7, 0.65675], [8, 0.7195], [9, 0.80043], [10, 0.95745], [11, 1.04257], [12, 1.11304], [13, 1.17369], [14, 1.29521], [15, 1.35241], [16, 1.39739], [17, 1.42669], [18, 1.44688], [19, 1.48723], [20, 1.52252], [21, 1.5581], [22, 1.58633], [23, 1.63929], [24, 1.6897], [25, 1.69278], [26, 1.73258], [27, 1.77265], 102 | # [1, 0.0505], [2, 0.06759], [3, 0.10286], [4, 0.20385], [5, 0.2579], [6, 0.753], [7, 1.2979], [8, 1.61863], [9, 1.69274], [10, 1.7827], [11, 1.86088], [12, 2.00849], [13, 2.08978], [14, 2.14763], [15, 2.24986], [16, 2.32267], [17, 2.45383], [18, 2.55755], [19, 2.61839], [20, 2.69121], [21, 2.72014], [22, 2.74607], [23, 2.82386], [24, 2.93274], [25, 3.0442], [26, 3.13758], [27, 3.4926], [28, 3.5229], [29, 3.55268], [30, 3.58796], [31, 3.6383], [32, 3.68272], [33, 3.72259], [34, 3.75753], [35, 3.79281], [36, 3.84024], [37, 3.89509], [38, 3.9261], [39, 3.96121], [40, 4.38345], [41, 4.42143], 103 | # [28, 1.60549], [29, 1.64588], [30, 1.66611], [31, 1.6911], [32, 1.72001], [33, 1.75031], [34, 1.90919], [35, 1.9421], [36, 1.97102], [37, 1.99895], [38, 2.00693], [39, 2.08722], [40, 2.09919], [41, 2.13111], 104 | # [42, 2.19892], [43, 2.26575], [44, 2.28321], [45, 2.29717], [46, 2.3231], [47, 2.34205], [48, 2.36699], [49, 2.38893], [50, 2.40688], [51, 2.4378], [52, 2.46273], [53, 2.50413], [54, 2.53106], [55, 3.07496], [56, 3.13511], [57, 3.16031], [58, 3.20273], [59, 3.22487], [60, 3.26114], [61, 3.29143], [62, 3.31529], [63, 3.34507], [64, 3.37024], [65, 3.3945], [66, 3.43531], [67, 3.46362], [68, 3.50004], 105 | # [42, 1.54581], [43, 1.566], [44, 1.59428], [45, 1.61661], [46, 1.63481], [47, 1.64693], None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, [48, 1.68127], [49, 1.98115], [50, 2.07242], [51, 2.13325], [52, 2.18113], [53, 2.25991], [54, 2.31727], 106 | # [28, 1.82972], [29, 1.89654], [30, 2.04765], [31, 2.10449], [32, 2.16433], [33, 2.21121], [34, 2.32242], [35, 2.38027], [36, 2.43463], [37, 2.46256], [38, 2.47853], [39, 2.5234], [40, 2.55431], [41, 2.59221], [42, 2.61914], [43, 2.68], [44, 2.74382], [45, 2.74981], [46, 2.79968], [47, 2.84019], [48, 2.84223], [49, 2.86252], [50, 2.89241], [51, 2.96748], [52, 3.03424], [53, 3.50271], [54, 4.03715], [55, 4.30524], [56, 4.38327], [57, 4.48275], [58, 4.55626], [59, 4.65751], [60, 4.73431], [61, 4.80021], [62, 4.89823], [63, 4.97422], [64, 5.06532], [65, 5.15623], [66, 5.21921], [67, 5.30028], [68, 5.34427], 107 | # [42, 1.95757], [43, 2.10069], [44, 2.21937], [45, 2.33358], [46, 2.44328], [47, 2.82579], [48, 2.85471], [49, 2.89261], [50, 2.92358], [51, 2.96369], [52, 3.02418], [53, 3.05442], [54, 3.09478], [55, 3.13828], [56, 3.17862], [57, 3.22854], [58, 3.26835], [59, 3.29857], [60, 3.71364], [61, 3.74338], [62, 3.90083], [63, 3.94124], [64, 3.96386], [65, 3.99585], [66, 4.03897], [67, 4.08102], [68, 4.26213], [69, 4.30113], [70, 4.33716], [71, 4.36419], [72, 4.37718], [73, 4.47619], [74, 4.48719], [75, 4.53317], [76, 4.62217], [77, 4.70258], [78, 4.72253], [79, 4.74846], [80, 4.78735], [81, 4.8083], [82, 4.83622], [42, 1.97613], [43, 1.99708], [44, 2.04694], [45, 2.08036], [46, 2.13422], [47, 2.16214], [48, 2.80048], [49, 2.82941], [50, 2.85034], [51, 2.88326], [52, 2.90477], [53, 2.94488], [54, 2.9807], [55, 3.01092], [56, 3.0503], [57, 3.08154], [58, 3.12202], [59, 3.14521], [60, 3.18501], [61, 3.22539], [62, 3.26012], [63, 3.27525], [64, 3.29543], [65, 3.33401], [66, 3.35516], [67, 3.36523], None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, [42, 2.18487], [43, 2.41376], [44, 2.45764], [45, 2.50053], [46, 2.54991], [47, 2.6277], [48, 2.68655], [49, 2.7414], [50, 2.81023], [51, 2.99198], [52, 3.08267], [53, 3.15901], [54, 3.22404], [55, 3.37751], [56, 3.42591], [57, 3.48653], [58, 3.51925], [59, 3.5395], [60, 3.61388], [61, 3.64369], [62, 3.68903], [63, 3.73126], [64, 3.79992], [65, 3.88381], [66, 3.89083], [67, 3.93115], [68, 3.98214], [69, 3.98715], [55, 2.33323], [56, 2.35816], [57, 2.43495], [58, 2.4973], [59, 2.9414], [60, 3.47116], [61, 3.72916], [62, 3.80093], [63, 3.89126], [64, 3.95255], [65, 4.04473], [66, 4.14978], [67, 4.21782], [68, 4.33386], [69, 4.42688], [70, 4.51888], [71, 4.60888], [72, 4.68029], [73, 4.75708], [74, 4.78501], [75, 4.80296], [76, 4.88487], [77, 4.98488], [78, 5.10085], [79, 5.2029], [80, 5.26388], [81, 5.3819], [82, 5.45987], [83, 5.55194], [84, 5.62889], [85, 5.68689], [86, 5.77328], [87, 5.84608], [88, 5.95597], [89, 6.08594], [90, 6.16496], [91, 6.24593], [92, 6.28635], [93, 6.30604], [94, 6.38617], [95, 6.49424], [42, 3.21079], [43, 3.30152], [44, 3.65027], [45, 3.68573], [46, 3.7261], [47, 3.77656], [48, 3.81003], [49, 3.84727], [50, 3.88767], [51, 3.92351], [52, 3.98155], [53, 4.02567], [54, 4.07477], [55, 4.12776], [56, 4.16875], [57, 4.58037], [58, 4.61088], [59, 4.7401], [60, 4.78997], [61, 4.81889], [62, 4.84385], [63, 4.87584], [64, 4.90883], [65, 5.07484], [66, 5.11499], [67, 5.1489], [68, 5.18187], [69, 5.19089], [70, 5.27686], [71, 5.28684], [72, 5.34092], [73, 5.43386], [74, 5.52996], [75, 5.55192], [76, 5.56587], [77, 5.6009], [78, 5.62188], [79, 5.64987], [80, 5.67089], [81, 5.68985], [82, 5.72089], [68, 3.39246], [69, 3.43289], [70, 3.46561], [71, 4.05571], [72, 4.09029], [73, 4.11377], [74, 4.15975], [75, 4.17874], [76, 4.22031], [77, 4.24881], [78, 4.27482], [79, 4.33583], [80, 4.36586], [81, 4.39186], [82, 4.42036], [83, 4.44985], [84, 4.47986], [85, 4.52984], [86, 4.5509], [87, 4.57089], [88, 4.60187], [89, 4.62288], [90, 4.63886], None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, [69, 3.53651], [70, 3.78986], [71, 3.83515], [72, 3.8796], [73, 3.91992], [74, 4.05565], [75, 4.12268], [76, 4.19072], [77, 4.27873], [78, 4.45877], [79, 4.52177], [80, 4.59079], [81, 4.63925], [82, 4.75195], [83, 4.8058], [84, 4.86025], [85, 4.89475], [86, 4.91879], [87, 4.97276], [88, 5.02024], [89, 5.05973], [90, 5.09043], [91, 5.14977], [92, 5.20874], [93, 5.21575], [94, 5.26677], [95, 5.30873], [96, 5.31175], [97, 5.33181], [98, 5.38777], [99, 5.46875], [70, 4.03918], [71, 4.49551], [72, 4.99451], [73, 5.30148], [74, 5.37246], [75, 5.49852], [76, 5.57862], [77, 5.67951], [78, 5.75751], [79, 5.81891], [80, 5.91166], [81, 5.98858], [82, 6.09463], [83, 6.22057], [84, 6.28655], [85, 6.36871], [86, 6.39894], [87, 6.41564], [88, 6.50395], [89, 6.62569], [90, 6.7292], [91, 6.84392], [92, 7.19863], [93, 7.2249], [94, 7.27384], [95, 7.30568], [96, 7.37877], [97, 7.43873], [98, 7.48524], [99, 7.51757], [100, 7.55831], [101, 7.59895], [102, 7.6394], [103, 7.67981], [104, 7.72377], [105, 8.11386], [106, 8.17405], [107, 8.30526], [108, 8.35359], [109, 8.37577], [110, 8.39888], [42, 4.45843], [43, 4.49743], [44, 4.65776], [45, 4.68669], [46, 4.7196], [47, 4.74752], [48, 4.7565], [49, 4.83941], [50, 4.85292], [51, 4.89444], [52, 4.9794], [53, 5.06357], [54, 5.08152], [55, 5.09449], [56, 5.12045], [57, 5.14142], [58, 5.16442], [59, 5.18842], [60, 5.21742], [61, 5.2504], [62, 5.2814], [63, 5.31351], [64, 5.34645], [65, 5.91151], [66, 5.94952], [67, 5.97049], [68, 6.03351], [69, 6.06553], [70, 6.10149], [71, 6.13748], [72, 6.17047], [73, 6.20767], [74, 6.25407], [75, 6.2878], [76, 6.31758], [77, 6.34476], [78, 6.3752], [79, 6.40793], [80, 6.42808], [81, 6.44779], [82, 6.47765], [91, 4.66031], [92, 4.67527], None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, [93, 4.70619], [94, 4.94386], [95, 4.99784], [96, 5.03882], [97, 5.07683], [98, 5.16091], [99, 5.22485], [100, 5.29683], [101, 5.38386], [102, 5.52996], [103, 5.58885], [83, 4.90015], [84, 4.9582], [85, 5.07314], [86, 5.13532], [87, 5.18423], [88, 5.21519], [89, 5.23317], [90, 5.27817], [91, 5.31016], [92, 5.35015], [93, 5.39521], [94, 5.49818], [95, 5.56326], [96, 5.56924], [97, 5.61519], [98, 5.6572], [99, 5.66119], [100, 5.67818], [101, 5.70117], [102, 5.77861], [103, 5.83546], [104, 6.31872], [105, 6.86342], [106, 7.1441], [107, 7.21824], [108, 7.3383], [109, 7.39834], [110, 7.48522], [111, 7.56354], [112, 7.64343], [113, 7.74346], [114, 7.82348], [115, 7.91359], [116, 8.02362], [117, 8.14373], [118, 8.22456], [119, 8.25478], [120, 8.27494], [121, 8.36354], [122, 8.46396], [123, 8.56768], [69, 5.46134], [70, 5.82034], [71, 5.85031], [72, 5.89131], [73, 5.9383], [74, 5.97633], [75, 6.01629], [76, 6.0883], [77, 6.13227], [78, 6.17728], [79, 6.2177], [80, 6.25401], [81, 6.29438], [82, 6.32757], [83, 6.78255], [84, 6.82086], [85, 6.96734], [86, 7.01272], [87, 7.03292], [88, 7.07129], [89, 7.1127], [90, 7.16267], [91, 7.34584], [92, 7.38261], [93, 7.41657], [94, 7.4473], [95, 7.45745], [96, 7.54285], [97, 7.56866], [98, 7.61263], [99, 7.6978], [100, 7.77277], [101, 7.79038], [102, 7.80746], [103, 7.83274], [104, 7.85251], [105, 7.87765], [106, 7.90136], [107, 7.94274], [108, 7.98751], [109, 8.03259], [100, 5.5079], [101, 5.5448], [102, 6.13184], [103, 6.16783], [104, 6.19581], [105, 6.23182], [106, 6.25507], [107, 6.28937], [108, 6.32163], [109, 6.35492], [110, 6.38209], [111, 6.4105], [112, 6.43519], [113, 6.46541], [114, 6.50128], [115, 6.52507], [116, 6.57204], [117, 6.59424], [118, 6.6124], [119, 6.63459], [120, 6.65317], [121, 6.66547], None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, [104, 5.62188], [105, 5.88198], [106, 5.94097], [107, 5.98493], [108, 6.03593], [109, 6.14194], [110, 6.2079], [111, 6.27124], [112, 6.33523], [113, 6.49119], [114, 6.57407], [115, 6.64265], [116, 6.6957], [117, 6.82788], [118, 6.88647], [119, 6.96535], [120, 7.00976], [121, 7.02996], [122, 7.07519], [123, 7.11066], [124, 7.15112], [125, 7.17931], [126, 7.24492], [127, 7.30241], [128, 7.30492], [129, 7.34525], [130, 7.39325], [131, 7.4034], [132, 7.43362], [133, 7.46393], [134, 7.54531], [135, 7.61047], [83, 6.16044], [84, 6.68008], [85, 6.95003], [86, 7.03497], [87, 7.14907], [88, 7.22523], [89, 7.31498], [90, 7.38509], [91, 7.45529], [92, 7.55998], [93, 7.63426], [94, 7.73026], [95, 7.82782], [96, 7.88826], [97, 7.96698], [98, 8.0003], [99, 8.01739], [100, 8.10826], [101, 8.2153], [102, 8.32514], [103, 8.4167], [104, 8.74365], [105, 8.7705], [106, 8.80586], [107, 8.8302], [108, 8.85032], [109, 8.87711], [110, 8.91051], [111, 8.9302], [112, 8.95606], [113, 8.98018], [114, 9.00023], [115, 9.03014], [116, 9.06066], [117, 9.34056], [118, 9.36288], [119, 9.47002], [120, 9.49437], [121, 9.51251], [122, 9.52472], [123, 9.55012], [96, 6.53266], [97, 6.73508], [98, 6.76109], [99, 6.79131], [100, 6.84113], [101, 6.8512], [102, 6.95812], [103, 6.97149], [104, 7.02142], [105, 7.11169], [106, 7.20608], [107, 7.23285], [108, 7.25307], [109, 7.29132], [110, 7.32366], [111, 7.34628], [112, 7.36645], [113, 7.38612], [114, 7.42457], [115, 7.45632], [116, 7.50108], [117, 7.53621], [118, 8.14162], [119, 8.18212], [120, 8.20227], [121, 8.24052], [122, 8.26623], [123, 8.30098], [124, 8.33322], [125, 8.36139], [126, 8.38681], [127, 8.41174], [128, 8.43967], [129, 8.4656], [130, 8.49053], [131, 8.51846], [132, 8.55037], [133, 8.57132], [134, 8.59526], [135, 8.6172], [136, 8.63345], [83, 6.49279], None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, [84, 6.54276], [85, 6.79267], [86, 6.84258], [87, 6.89148], [88, 6.94771], [89, 7.04248], [90, 7.11777], [91, 7.19245], [92, 7.25498], [93, 7.4165], [94, 7.50295], [95, 7.58886], [122, 6.73003], [123, 6.87032], [124, 6.9268], [125, 7.00776], [126, 7.03492], [127, 7.05807], [128, 7.10057], [129, 7.14906], [130, 7.20505], [131, 7.25503], [132, 7.32058], [133, 7.375], [134, 7.38316], [135, 7.42353], [136, 7.46405], [137, 7.47007], [138, 7.48443], [139, 7.52002], [140, 7.59381], [141, 7.68027], [142, 8.15085], [143, 8.70325], [144, 8.90751], [145, 9.14817], [146, 9.17046], [147, 9.20025], [148, 9.22084], [149, 9.25008], [150, 9.27507], [151, 9.30185], [152, 9.33501], [153, 9.36285], [154, 9.39121], [155, 9.42004], [156, 9.44178], [157, 9.46399], [158, 9.70568], [159, 9.72576], [160, 9.81003], [161, 9.84033], [162, 9.84994], [136, 7.63629], [137, 7.69037], [138, 7.73026], [139, 7.91003], [140, 7.94527], [141, 7.99023], [142, 8.03751], [143, 8.04758], [144, 8.15888], [145, 8.17103], [146, 8.20927], [147, 8.27533], [148, 8.35533], [149, 8.37247], [150, 8.38778], [151, 8.41371], [152, 8.43665], [153, 8.46058], [154, 8.48252], [155, 8.50247], [156, 8.53538], [157, 8.55932], [158, 8.59423], [159, 8.62415], [160, 9.09806], [161, 9.12056], [162, 9.14036], [163, 9.16529], [164, 9.17855], [165, 9.20088], [166, 9.23094], [167, 9.25027], [168, 9.2715], [169, 9.29024], [170, 9.3099], [171, 9.33247], [172, 9.35277], [173, 9.37295], [174, 9.40333], [175, 9.41344], [176, 9.43367], [96, 7.61261], [97, 7.63283], [98, 7.64952], None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, [99, 7.69289], [100, 7.9428], [101, 8.01279], [102, 8.08257], [103, 8.13767], [104, 8.21777], [105, 8.28476], [106, 8.35132], [107, 8.41216], [108, 8.56575], [110, 8.10741], [111, 8.19255], [112, 8.24743], [113, 8.36105], [114, 8.42787], [115, 8.47773], [116, 8.51164], [117, 8.53358], [118, 8.5749], [119, 8.60765], [120, 8.64572], [121, 8.67399], [122, 8.73268], [123, 8.77918], [124, 8.7827], [125, 8.80748], [126, 8.84288], [127, 8.84797], [128, 8.86258], [129, 8.88292], [130, 8.94121], [131, 8.98265], [132, 9.29324], [133, 9.61287], [134, 9.77269]] 108 | -------------------------------------------------------------------------------- /Data Generating Scripts/multiple_thread_data_gen.py: -------------------------------------------------------------------------------- 1 | import cv2 2 | import numpy as np 3 | import glob 4 | import time 5 | import multiprocessing 6 | import threading 7 | from queue import Queue 8 | 9 | 10 | 11 | """ 12 | Threading 13 | """ 14 | 15 | image_count = 1 16 | 17 | image_name = 'c2.jpeg' # origional image path goes here 18 | original = cv2.imread(image_name) 19 | 20 | start_time = time.time() 21 | 22 | 23 | 24 | def filebrowser(ext='', directory=''): 25 | """ 26 | returns files with an extension 27 | """ 28 | return [f for f in glob.glob(f"{directory}**/*{ext}", recursive=True)] 29 | 30 | 31 | 32 | 33 | 34 | 35 | class DuplicateFinder(threading.Thread): 36 | 37 | 38 | def __init__(self, queue, queue2): 39 | """Initialize the thread""" 40 | threading.Thread.__init__(self) 41 | self.lock = threading.Lock() 42 | self.queue = queue 43 | self.queue2 = queue2 44 | 45 | 46 | def run(self): 47 | # global image_count 48 | """Run the Thread""" 49 | 50 | while True: 51 | image_path = self.queue.get() 52 | 53 | self.check_duplicate(image_path) 54 | 55 | # send a signal to the queue that the job is done 56 | self.queue.task_done() 57 | 58 | 59 | 60 | 61 | def check_duplicate(self, image_): 62 | global image_count 63 | """Prints Duplicate Image Name""" 64 | 65 | try: 66 | image_to_compare = cv2.imread(image_) 67 | if original.shape == image_to_compare.shape: 68 | 69 | difference = cv2.subtract(original, image_to_compare) 70 | b, g, r = cv2.split(difference) 71 | 72 | if cv2.countNonZero(b) == 0 and cv2.countNonZero(g) == 0 and cv2.countNonZero(r) == 0: 73 | # print('Duplicate Found') 74 | sift = cv2.xfeatures2d.SIFT_create() 75 | kp_1, desc_1 = sift.detectAndCompute(original, None) 76 | kp_2, desc_2 = sift.detectAndCompute(image_to_compare, None) 77 | 78 | index_params = dict(algorithm=0, trees=5) 79 | search_params = dict() 80 | flann = cv2.FlannBasedMatcher(index_params, search_params) 81 | 82 | matches = flann.knnMatch(desc_1, desc_2, k=2) 83 | 84 | good_points = [] 85 | for m, n in matches: 86 | if m.distance < 0.6*n.distance: 87 | good_points.append(m) 88 | 89 | # Define how similar they are 90 | number_keypoints = 0 91 | if len(kp_1) <= len(kp_2): 92 | number_keypoints = len(kp_1) 93 | else: 94 | number_keypoints = len(kp_2) 95 | 96 | self.queue2.put([image_count, round(time.time() - start_time, 5)]) # we can skip image count but that's not fair 97 | 98 | self.lock.acquire() 99 | try: 100 | image_count += 1 101 | finally: 102 | self.lock.release() 103 | except Exception as e: 104 | pass 105 | 106 | def main(image_dir): 107 | """ 108 | Run the program 109 | """ 110 | 111 | queue = Queue() 112 | queue2 = Queue() # queue to take plotting data 113 | 114 | # create a thread pool and give them a queue 115 | for i in range(5000): # I don't won't my virtual memory to get bunked up 116 | t = DuplicateFinder(queue, queue2) 117 | t.setDaemon(True) 118 | t.start() 119 | 120 | #give the queue some data | consumer and producer code huh 121 | for image_ in image_dir: 122 | queue.put(image_) 123 | 124 | # wait for the queue to finish 125 | queue.join() 126 | # queue2.join() 127 | 128 | print(list(queue2.queue)) 129 | 130 | 131 | if __name__ == "__main__": 132 | 133 | image_dir = filebrowser(ext='.jpeg', directory='') # directory='' ==> search images from current to inner sub-directories 134 | image_dir += filebrowser(ext='.jpg', directory='') 135 | 136 | main(image_dir) 137 | 138 | 139 | 140 | print("--- %s seconds ---" % (time.time() - start_time)) 141 | print('Program Executed Completely') 142 | 143 | 144 | -------------------------------------------------------------------------------- /Data Generating Scripts/single_core_data_gen.py: -------------------------------------------------------------------------------- 1 | import cv2 2 | import numpy as np 3 | import glob 4 | import time 5 | import multiprocessing 6 | import threading 7 | 8 | """ 9 | Sequentiall on single core 10 | """ 11 | 12 | def filebrowser(ext='', directory=''): 13 | """ 14 | returns files with an extension 15 | """ 16 | return [f for f in glob.glob(f"{directory}**/*{ext}", recursive=True)] 17 | 18 | image_dir = filebrowser(ext='.jpeg', directory='') # directory='' ==> search images from current to inner sub-directories 19 | image_dir += filebrowser(ext='.jpg', directory='') 20 | 21 | ## print(image_dir) 22 | 23 | 24 | image_name = 'c2.jpeg' # origional image path goes here 25 | original = cv2.imread(image_name) 26 | 27 | 28 | start_time = time.time() 29 | time_list = () 30 | image_count = 1 31 | image_count_list = () 32 | for image_ in image_dir: 33 | try: 34 | image_to_compare = cv2.imread(image_) 35 | if original.shape == image_to_compare.shape: 36 | 37 | difference = cv2.subtract(original, image_to_compare) 38 | b, g, r = cv2.split(difference) 39 | 40 | if cv2.countNonZero(b) == 0 and cv2.countNonZero(g) == 0 and cv2.countNonZero(r) == 0: 41 | 42 | sift = cv2.xfeatures2d.SIFT_create() 43 | kp_1, desc_1 = sift.detectAndCompute(original, None) 44 | kp_2, desc_2 = sift.detectAndCompute(image_to_compare, None) 45 | 46 | index_params = dict(algorithm=0, trees=5) 47 | search_params = dict() 48 | flann = cv2.FlannBasedMatcher(index_params, search_params) 49 | 50 | matches = flann.knnMatch(desc_1, desc_2, k=2) 51 | 52 | good_points = [] 53 | for m, n in matches: 54 | if m.distance < 0.6*n.distance: 55 | good_points.append(m) 56 | 57 | # Define how similar they are 58 | number_keypoints = 0 59 | if len(kp_1) <= len(kp_2): 60 | number_keypoints = len(kp_1) 61 | else: 62 | number_keypoints = len(kp_2) 63 | 64 | time_list += (round(time.time() - start_time, 5), ) 65 | image_count_list += (image_count, ) 66 | 67 | image_count += 1 68 | except Exception as e: 69 | pass 70 | 71 | 72 | 73 | print("--- %s seconds ---" % (time.time() - start_time)) 74 | print('Program Executed Completely') 75 | print(time_list) 76 | print(image_count_list) -------------------------------------------------------------------------------- /Duplication Detecting Scripts/ddi.py: -------------------------------------------------------------------------------- 1 | # *-*coding: utf-8 *-* 2 | 3 | import cv2 4 | import numpy as np 5 | 6 | import glob 7 | import sys 8 | import multiprocessing 9 | 10 | 11 | 12 | def filebrowser(ext=''): 13 | """ 14 | returns files with an extension 15 | """ 16 | 17 | target = "**/*.{}".format(ext) 18 | return [filepath for filepath in glob.iglob(target, recursive = True)] # Recursive from Current Directory 19 | 20 | 21 | image_name = sys.argv[1] # origional image path goes here 22 | original = cv2.imread(image_name) 23 | 24 | 25 | def find_duplicates(image_): 26 | duplicates = '' 27 | try: 28 | image_to_compare = cv2.imread(image_) 29 | if original.shape == image_to_compare.shape: 30 | 31 | difference = cv2.subtract(original, image_to_compare) 32 | b, g, r = cv2.split(difference) 33 | 34 | if cv2.countNonZero(b) == 0 and cv2.countNonZero(g) == 0 and cv2.countNonZero(r) == 0: 35 | 36 | duplicates = image_ 37 | 38 | return duplicates 39 | 40 | except Exception as e: 41 | pass 42 | 43 | 44 | 45 | 46 | if __name__ == '__main__': 47 | 48 | image_dir = filebrowser(ext='jpeg') 49 | image_dir += filebrowser(ext='jpg') 50 | image_dir += filebrowser(ext='png') 51 | image_dir += filebrowser(ext='gif') 52 | 53 | pool = multiprocessing.Pool() 54 | 55 | inputs = image_dir 56 | 57 | outputs_async = pool.map_async(find_duplicates, inputs) 58 | 59 | duplicates = outputs_async.get() 60 | 61 | for image in duplicates: 62 | if image is not None: 63 | print(image) 64 | -------------------------------------------------------------------------------- /Duplication Detecting Scripts/detect_duplicate_multiple_core.py: -------------------------------------------------------------------------------- 1 | import cv2 2 | import numpy as np 3 | import glob 4 | import time 5 | import multiprocessing 6 | from os import path 7 | 8 | # setting up path 9 | basepath = path.dirname(__file__) 10 | 11 | # loading environment 12 | image_path = path.abspath(path.join(basepath, "../images_in", "duplicate.jpg")) # Image we are running these tests against. 13 | 14 | """ 15 | Multiprocessing 16 | """ 17 | 18 | original = cv2.imread(image_path) 19 | 20 | 21 | 22 | def find_duplicates(image_): 23 | duplicates = '' 24 | try: 25 | image_to_compare = cv2.imread(image_) 26 | if original.shape == image_to_compare.shape: 27 | difference = cv2.subtract(original, image_to_compare) # set threshold here 28 | b, g, r = cv2.split(difference) 29 | 30 | if cv2.countNonZero(b) == 0 and cv2.countNonZero(g) == 0 and cv2.countNonZero(r) == 0: 31 | duplicates = image_ 32 | 33 | # some operations that are not needed but added to simply consume some time for getting better results for observation. 34 | sift = cv2.SIFT_create() 35 | kp_1, desc_1 = sift.detectAndCompute(original, None) 36 | kp_2, desc_2 = sift.detectAndCompute(image_to_compare, None) 37 | 38 | index_params = dict(algorithm=0, trees=5) 39 | search_params = dict() 40 | flann = cv2.FlannBasedMatcher(index_params, search_params) 41 | 42 | matches = flann.knnMatch(desc_1, desc_2, k=2) 43 | 44 | good_points = [] 45 | for m, n in matches: 46 | if m.distance < 0.6*n.distance: 47 | good_points.append(m) 48 | 49 | # Define how similar they are 50 | number_keypoints = 0 51 | if len(kp_1) <= len(kp_2): 52 | number_keypoints = len(kp_1) 53 | else: 54 | number_keypoints = len(kp_2) 55 | 56 | return duplicates 57 | 58 | except Exception as e: 59 | print('[!] {}'.format(e)) 60 | 61 | 62 | 63 | if __name__ == '__main__': 64 | 65 | 66 | def filebrowser(ext='', directory=''): 67 | """ 68 | returns files with an extension 69 | """ 70 | return [f for f in glob.glob(f"{directory}**/*{ext}", recursive=True)] 71 | 72 | image_dir = filebrowser(ext='.jpeg', directory='') # directory='' ==> search images from current to inner sub-directories 73 | image_dir += filebrowser(ext='.jpg', directory='') 74 | ## print(image_dir) 75 | 76 | 77 | # # 1) Check if 2 images are equals | parallel on cores 78 | start_time = time.time() 79 | pool = multiprocessing.Pool() # Equal to number of cores | octa for this pc 80 | 81 | 82 | 83 | inputs = image_dir 84 | outputs_async = pool.map_async(find_duplicates, inputs) 85 | print(outputs_async.get()) 86 | 87 | print("--- %s seconds ---" % (time.time() - start_time)) 88 | print('Program Executed Completely') 89 | 90 | 91 | -------------------------------------------------------------------------------- /Duplication Detecting Scripts/detect_duplicate_multiple_thread.py: -------------------------------------------------------------------------------- 1 | import cv2 2 | import numpy as np 3 | import glob 4 | import time 5 | import multiprocessing 6 | import threading 7 | 8 | from os import path 9 | 10 | # setting up path 11 | basepath = path.dirname(__file__) 12 | 13 | # loading environment 14 | image_path = path.abspath(path.join(basepath, "../images_in", "duplicate.jpg")) # Image we are running these tests against. 15 | 16 | 17 | """ 18 | Threading 19 | """ 20 | 21 | 22 | original = cv2.imread(image_path) 23 | 24 | 25 | 26 | def find_duplicates(image_=''): 27 | duplicates = '' 28 | try: 29 | image_to_compare = cv2.imread(image_) 30 | if original.shape == image_to_compare.shape: 31 | 32 | difference = cv2.subtract(original, image_to_compare) 33 | b, g, r = cv2.split(difference) 34 | 35 | if cv2.countNonZero(b) == 0 and cv2.countNonZero(g) == 0 and cv2.countNonZero(r) == 0: 36 | print(f'Duplicates Found: {image_path} is Duplicate of {image_}') 37 | 38 | sift = cv2.SIFT_create() 39 | kp_1, desc_1 = sift.detectAndCompute(original, None) 40 | kp_2, desc_2 = sift.detectAndCompute(image_to_compare, None) 41 | 42 | index_params = dict(algorithm=0, trees=5) 43 | search_params = dict() 44 | flann = cv2.FlannBasedMatcher(index_params, search_params) 45 | 46 | matches = flann.knnMatch(desc_1, desc_2, k=2) 47 | 48 | good_points = [] 49 | for m, n in matches: 50 | if m.distance < 0.6*n.distance: 51 | good_points.append(m) 52 | 53 | # Define how similar they are 54 | number_keypoints = 0 55 | if len(kp_1) <= len(kp_2): 56 | number_keypoints = len(kp_1) 57 | else: 58 | number_keypoints = len(kp_2) 59 | 60 | 61 | except Exception as e: 62 | print('[!] {}'.format(e)) 63 | 64 | 65 | 66 | if __name__ == '__main__': 67 | 68 | 69 | def filebrowser(ext='', directory=''): 70 | """ 71 | returns files with an extension 72 | """ 73 | return [f for f in glob.glob(f"{directory}**/*{ext}", recursive=True)] 74 | 75 | image_dir = filebrowser(ext='.jpeg', directory='') # directory='' ==> search images from current to inner sub-directories 76 | image_dir += filebrowser(ext='.jpg', directory='') 77 | 78 | 79 | 80 | start_time = time.time() 81 | 82 | for image_ in image_dir: 83 | t = threading.Thread(target=find_duplicates, args=(image_,)) 84 | t.daemon = False 85 | t.start() 86 | 87 | 88 | print("--- %s seconds ---" % (time.time() - start_time)) 89 | print('Program Executed Completely') 90 | 91 | 92 | 93 | 94 | 95 | 96 | # import cv2 97 | # import numpy as np 98 | # import glob 99 | # import time 100 | # import multiprocessing 101 | # import threading 102 | # from queue import Queue 103 | 104 | 105 | 106 | # """ 107 | # Threading 108 | # """ 109 | 110 | 111 | 112 | # image_name = 'c2.jpeg' # origional image path goes here 113 | # original = cv2.imread(image_name) 114 | 115 | # start_time = time.time() 116 | 117 | 118 | 119 | # def filebrowser(ext='', directory=''): 120 | # """ 121 | # returns files with an extension 122 | # """ 123 | # return [f for f in glob.glob(f"{directory}**/*{ext}", recursive=True)] 124 | 125 | 126 | 127 | 128 | 129 | 130 | # class DuplicateFinder(threading.Thread): 131 | 132 | # def __init__(self, queue): 133 | # """Initialize the thread""" 134 | # threading.Thread.__init__(self) 135 | # self.queue = queue 136 | 137 | # def run(self): 138 | # """Run the Thread""" 139 | # while True: 140 | # image_path = self.queue.get() 141 | 142 | # self.check_duplicate(image_path) 143 | 144 | # # send a signal to the queue that the job is done 145 | # self.queue.task_done() 146 | 147 | 148 | # def check_duplicate(self, image_): 149 | # """Prints Duplicate Image Name""" 150 | # try: 151 | # image_to_compare = cv2.imread(image_) 152 | # if original.shape == image_to_compare.shape: 153 | 154 | # difference = cv2.subtract(original, image_to_compare) 155 | # b, g, r = cv2.split(difference) 156 | 157 | # if cv2.countNonZero(b) == 0 and cv2.countNonZero(g) == 0 and cv2.countNonZero(r) == 0: 158 | # print('Duplicate Found') 159 | # sift = cv2.xfeatures2d.SIFT_create() 160 | # kp_1, desc_1 = sift.detectAndCompute(original, None) 161 | # kp_2, desc_2 = sift.detectAndCompute(image_to_compare, None) 162 | 163 | # index_params = dict(algorithm=0, trees=5) 164 | # search_params = dict() 165 | # flann = cv2.FlannBasedMatcher(index_params, search_params) 166 | 167 | # matches = flann.knnMatch(desc_1, desc_2, k=2) 168 | 169 | # good_points = [] 170 | # for m, n in matches: 171 | # if m.distance < 0.6*n.distance: 172 | # good_points.append(m) 173 | 174 | # # Define how similar they are 175 | # number_keypoints = 0 176 | # if len(kp_1) <= len(kp_2): 177 | # number_keypoints = len(kp_1) 178 | # else: 179 | # number_keypoints = len(kp_2) 180 | 181 | # except Exception as e: 182 | # pass 183 | 184 | # def main(image_dir): 185 | # """ 186 | # Run the program 187 | # """ 188 | 189 | # queue = Queue() 190 | 191 | # # create a thread pool and give them a queue 192 | # for i in range(100): # I don't won't my virtual memory to get bunked up 193 | # t = DuplicateFinder(queue) 194 | # t.setDaemon(True) 195 | # t.start() 196 | 197 | # #give the queue some data | consumer and producer code huh 198 | # for image_ in image_dir: 199 | # queue.put(image_) 200 | 201 | # # wait for the queue to finish 202 | # queue.join() 203 | 204 | # if __name__ == "__main__": 205 | 206 | # image_dir = filebrowser(ext='.jpeg', directory='') # directory='' ==> search images from current to inner sub-directories 207 | # image_dir += filebrowser(ext='.jpg', directory='') 208 | 209 | # main(image_dir) 210 | 211 | 212 | 213 | # print("--- %s seconds ---" % (time.time() - start_time)) 214 | # print('Program Executed Completely') 215 | -------------------------------------------------------------------------------- /Duplication Detecting Scripts/detect_duplicate_single_core.py: -------------------------------------------------------------------------------- 1 | import cv2 2 | import numpy as np 3 | import glob 4 | import time 5 | import multiprocessing 6 | import threading 7 | from os import path 8 | 9 | # setting up path 10 | basepath = path.dirname(__file__) 11 | 12 | # loading environment 13 | image_path = path.abspath(path.join(basepath, "../images_in", "duplicate.jpg")) # Image we are running these tests against. 14 | 15 | 16 | """ 17 | Sequentiall on single core 18 | """ 19 | 20 | def filebrowser(ext='', directory=''): 21 | """ 22 | returns files with an extension 23 | """ 24 | return [f for f in glob.glob(f"{directory}**/*{ext}", recursive=True)] 25 | 26 | image_dir = filebrowser(ext='.jpeg', directory='') # directory='' ==> search images from current to inner sub-directories 27 | image_dir += filebrowser(ext='.jpg', directory='') 28 | 29 | ## print(image_dir) 30 | 31 | 32 | original = cv2.imread(image_path) 33 | 34 | 35 | start_time = time.time() 36 | 37 | for image_ in image_dir: 38 | try: 39 | image_to_compare = cv2.imread(image_) 40 | if original.shape == image_to_compare.shape: 41 | 42 | difference = cv2.subtract(original, image_to_compare) 43 | b, g, r = cv2.split(difference) 44 | 45 | if cv2.countNonZero(b) == 0 and cv2.countNonZero(g) == 0 and cv2.countNonZero(r) == 0: 46 | print(f'Duplicates Found: {image_path} is Duplicate of {image_}') 47 | 48 | 49 | sift = cv2.SIFT_create() 50 | kp_1, desc_1 = sift.detectAndCompute(original, None) 51 | kp_2, desc_2 = sift.detectAndCompute(image_to_compare, None) 52 | 53 | index_params = dict(algorithm=0, trees=5) 54 | search_params = dict() 55 | flann = cv2.FlannBasedMatcher(index_params, search_params) 56 | 57 | matches = flann.knnMatch(desc_1, desc_2, k=2) 58 | 59 | good_points = [] 60 | for m, n in matches: 61 | if m.distance < 0.6*n.distance: 62 | good_points.append(m) 63 | 64 | # Define how similar they are 65 | number_keypoints = 0 66 | if len(kp_1) <= len(kp_2): 67 | number_keypoints = len(kp_1) 68 | else: 69 | number_keypoints = len(kp_2) 70 | except Exception as e: 71 | print('[!] {}'.format(e)) 72 | 73 | 74 | 75 | print("--- %s seconds ---" % (time.time() - start_time)) 76 | print('Program Executed Completely') -------------------------------------------------------------------------------- /Duplication Detecting Scripts/detect_duplicates.py: -------------------------------------------------------------------------------- 1 | import cv2 2 | import numpy as np 3 | import glob 4 | import time 5 | import multiprocessing 6 | import threading 7 | from os import path 8 | 9 | # setting up path 10 | basepath = path.dirname(__file__) 11 | 12 | # loading environment 13 | image_path = path.abspath(path.join(basepath, "../images_in", "duplicate.jpg")) # Image we are running these tests against. 14 | 15 | """ 16 | Sequentiall on single core 17 | """ 18 | 19 | # def filebrowser(ext='', directory=''): 20 | # """ 21 | # returns files with an extension 22 | # """ 23 | # return [f for f in glob.glob(f"{directory}**/*{ext}", recursive=True)] 24 | 25 | # image_dir = filebrowser(ext='.jpeg', directory='') # directory='' ==> search images from current to inner sub-directories 26 | # image_dir += filebrowser(ext='.jpg', directory='') 27 | 28 | # ## print(image_dir) 29 | 30 | 31 | # image_path = 'c2.jpeg' # origional image path goes here 32 | # original = cv2.imread(image_path) 33 | 34 | 35 | # start_time = time.time() 36 | 37 | # for image_ in image_dir: 38 | # try: 39 | # image_to_compare = cv2.imread(image_) 40 | # if original.shape == image_to_compare.shape: 41 | 42 | # difference = cv2.subtract(original, image_to_compare) 43 | # b, g, r = cv2.split(difference) 44 | 45 | # if cv2.countNonZero(b) == 0 and cv2.countNonZero(g) == 0 and cv2.countNonZero(r) == 0: 46 | # print(f'Duplicates Found: {image_path} is Duplicate of {image_}') 47 | 48 | 49 | # sift = cv2.xfeatures2d.SIFT_create() 50 | # kp_1, desc_1 = sift.detectAndCompute(original, None) 51 | # kp_2, desc_2 = sift.detectAndCompute(image_to_compare, None) 52 | 53 | # index_params = dict(algorithm=0, trees=5) 54 | # search_params = dict() 55 | # flann = cv2.FlannBasedMatcher(index_params, search_params) 56 | 57 | # matches = flann.knnMatch(desc_1, desc_2, k=2) 58 | 59 | # good_points = [] 60 | # for m, n in matches: 61 | # if m.distance < 0.6*n.distance: 62 | # good_points.append(m) 63 | 64 | # # Define how similar they are 65 | # number_keypoints = 0 66 | # if len(kp_1) <= len(kp_2): 67 | # number_keypoints = len(kp_1) 68 | # else: 69 | # number_keypoints = len(kp_2) 70 | # except Exception as e: 71 | # pass 72 | 73 | 74 | 75 | # print("--- %s seconds ---" % (time.time() - start_time)) 76 | # print('Program Executed Completely') 77 | 78 | 79 | 80 | 81 | """ 82 | Multiprocessing 83 | """ 84 | 85 | 86 | # image_path = 'c2.jpeg' # origional image path goes here 87 | # original = cv2.imread(image_path) 88 | 89 | 90 | 91 | # def find_duplicates(image_): 92 | # duplicates = '' 93 | # try: 94 | # image_to_compare = cv2.imread(image_) 95 | # if original.shape == image_to_compare.shape: 96 | 97 | # difference = cv2.subtract(original, image_to_compare) 98 | # b, g, r = cv2.split(difference) 99 | 100 | # if cv2.countNonZero(b) == 0 and cv2.countNonZero(g) == 0 and cv2.countNonZero(r) == 0: 101 | # duplicates = image_ 102 | 103 | 104 | # sift = cv2.xfeatures2d.SIFT_create() 105 | # kp_1, desc_1 = sift.detectAndCompute(original, None) 106 | # kp_2, desc_2 = sift.detectAndCompute(image_to_compare, None) 107 | 108 | # index_params = dict(algorithm=0, trees=5) 109 | # search_params = dict() 110 | # flann = cv2.FlannBasedMatcher(index_params, search_params) 111 | 112 | # matches = flann.knnMatch(desc_1, desc_2, k=2) 113 | 114 | # good_points = [] 115 | # for m, n in matches: 116 | # if m.distance < 0.6*n.distance: 117 | # good_points.append(m) 118 | 119 | # # Define how similar they are 120 | # number_keypoints = 0 121 | # if len(kp_1) <= len(kp_2): 122 | # number_keypoints = len(kp_1) 123 | # else: 124 | # number_keypoints = len(kp_2) 125 | 126 | # return duplicates 127 | 128 | # except Exception as e: 129 | # pass 130 | 131 | 132 | 133 | # if __name__ == '__main__': 134 | 135 | 136 | # def filebrowser(ext='', directory=''): 137 | # """ 138 | # returns files with an extension 139 | # """ 140 | # return [f for f in glob.glob(f"{directory}**/*{ext}", recursive=True)] 141 | 142 | # image_dir = filebrowser(ext='.jpeg', directory='') # directory='' ==> search images from current to inner sub-directories 143 | # image_dir += filebrowser(ext='.jpg', directory='') 144 | # ## print(image_dir) 145 | 146 | 147 | # # # 1) Check if 2 images are equals | parallel on cores 148 | # start_time = time.time() 149 | # pool = multiprocessing.Pool() # Equal to number of cores | octa for this pc 150 | 151 | 152 | 153 | # inputs = image_dir 154 | # outputs_async = pool.map_async(find_duplicates, inputs) 155 | # print(outputs_async.get()) 156 | 157 | # print("--- %s seconds ---" % (time.time() - start_time)) 158 | # print('Program Executed Completely') 159 | 160 | 161 | 162 | """ 163 | Threading 164 | """ 165 | 166 | original = cv2.imread(image_path) 167 | 168 | 169 | 170 | def find_duplicates(image_=''): 171 | duplicates = '' 172 | try: 173 | image_to_compare = cv2.imread(image_) 174 | if original.shape == image_to_compare.shape: 175 | 176 | difference = cv2.subtract(original, image_to_compare) 177 | b, g, r = cv2.split(difference) 178 | 179 | if cv2.countNonZero(b) == 0 and cv2.countNonZero(g) == 0 and cv2.countNonZero(r) == 0: 180 | print(f'Duplicates Found: {image_path} is Duplicate of {image_}') 181 | 182 | sift = cv2.SIFT_create() 183 | kp_1, desc_1 = sift.detectAndCompute(original, None) 184 | kp_2, desc_2 = sift.detectAndCompute(image_to_compare, None) 185 | 186 | index_params = dict(algorithm=0, trees=5) 187 | search_params = dict() 188 | flann = cv2.FlannBasedMatcher(index_params, search_params) 189 | 190 | matches = flann.knnMatch(desc_1, desc_2, k=2) 191 | 192 | good_points = [] 193 | for m, n in matches: 194 | if m.distance < 0.6*n.distance: 195 | good_points.append(m) 196 | 197 | # Define how similar they are 198 | number_keypoints = 0 199 | if len(kp_1) <= len(kp_2): 200 | number_keypoints = len(kp_1) 201 | else: 202 | number_keypoints = len(kp_2) 203 | 204 | 205 | except Exception as e: 206 | print('[!] {}'.format(e)) 207 | 208 | 209 | 210 | if __name__ == '__main__': 211 | 212 | 213 | def filebrowser(ext='', directory=''): 214 | """ 215 | returns files with an extension 216 | """ 217 | return [f for f in glob.glob(f"{directory}**/*{ext}", recursive=True)] 218 | 219 | image_dir = filebrowser(ext='.jpeg', directory='') # directory='' ==> search images from current to inner sub-directories 220 | image_dir += filebrowser(ext='.jpg', directory='') 221 | 222 | 223 | 224 | start_time = time.time() 225 | 226 | for image_ in image_dir: 227 | t = threading.Thread(target=find_duplicates, args=(image_,)) 228 | t.daemon = False 229 | t.start() 230 | 231 | 232 | print("--- %s seconds ---" % (time.time() - start_time)) 233 | print('Program Executed Completely') 234 | -------------------------------------------------------------------------------- /Generating Graph/multiple_core_graph.py: -------------------------------------------------------------------------------- 1 | from matplotlib import pyplot as plt 2 | 3 | 4 | x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072] 5 | y = [0.10107, 0.19383, 0.31848, 0.47482, 0.65649, 0.76382, 0.95013, 0.95368, 0.98859, 0.99061, 1.01883, 1.04098, 1.08378, 1.11404, 1.13865, 1.16884, 1.19401, 1.22423, 1.2847, 1.31508, 1.35555, 1.38882, 1.41898, 1.52874, 1.65397, 1.78073, 1.78374, 1.81908, 1.8211, 1.83925, 1.86391, 1.89183, 1.91856, 1.944, 1.97791, 2.01082, 2.03974, 2.06966, 2.09859, 2.12602, 2.15295, 0.04046, 0.12827, 0.13131, 0.15142, 0.15346, 0.17156, 0.19829, 0.22833, 0.26449, 0.29481, 0.32865, 0.35843, 0.38591, 0.41872, 0.44852, 0.48483, 0.50852, 0.53881, 0.62819, 0.63379, 0.64878, 0.65386, 0.77391, 0.94368, 1.10332, 1.2443, 1.37826, 1.55343, 1.66922, 1.66922, 1.69953, 1.70357, 1.72041, 1.74334, 1.7685, 1.79331, 1.81347, 1.84929, 1.87727, 1.90371, 1.93861, 0.03834, 0.07619, 0.10097, 0.12913, 0.22199, 0.3615, 0.47616, 0.47616, 0.51298, 0.51298, 0.53324, 0.57362, 0.59583, 0.62143, 0.64674, 0.67694, 0.71121, 0.7456, 0.78612, 0.82114, 0.86908, 0.91129, 0.94103, 1.0463, 1.0463, 1.06897, 1.07099, 1.08909, 1.11122, 1.13635, 1.16153, 1.18619, 1.21193, 1.2412, 1.26597, 1.29636, 1.32613, 1.35596, 1.386, 1.4145, 1.51553, 0.0151, 0.03026, 0.03026, 0.05499, 0.0777, 0.10495, 0.13014, 0.16488, 0.19061, 0.22497, 0.26132, 0.29167, 0.32205, 0.35533, 0.39088, 0.43024, 0.45041, 0.47513, 0.50187, 0.5251, 0.56043, 0.58469, 0.61536, 0.65024, 0.69608, 0.73044, 0.80043, 0.83022, 0.87617, 0.95011, 1.06997, 1.1283, 1.21491, 1.28172, 1.3504, 1.46198, 1.53466, 1.64032, 1.78561, 1.84028, 1.92926, 0.04946, 0.06762, 0.16037, 0.28508, 0.41111, 0.50187, 0.91027, 0.94707, 0.99995, 1.05033, 1.09009, 1.1283, 1.16501, 1.20083, 1.23106, 1.26949, 1.30191, 1.35494, 1.39109, 1.84746, 1.88438, 2.08934, 2.16214, 2.18907, 2.215, 2.2519, 2.28732, 2.4913, 2.53317, 2.56908, 2.59601, 2.60398, 2.68676, 2.69525, 2.72767, 2.82242, 2.91486, 2.93515, 2.95047, 2.9807, 3.01493, 0.04999, 0.08025, 0.11801, 0.15028, 0.17496, 0.221, 0.25124, 0.90017, 0.92991, 0.95009, 0.9994, 1.02005, 1.0503, 1.1001, 1.13832, 1.16049, 1.18517, 1.21089, 1.24128, 1.27163, 1.29984, 1.34031, 1.36531, 1.39511, 1.415, 1.44377, 1.46197, 0.05244, 0.33336, 0.41253, 0.45291, 0.50497, 0.58817, 0.65675, 0.7195, 0.80043, 0.95745, 1.04257, 1.11304, 1.17369, 1.29521, 1.35241, 1.39739, 1.42669, 1.44688, 1.48723, 1.52252, 1.5581, 1.58633, 1.63929, 1.6897, 1.69278, 1.73258, 1.77265, 0.0505, 0.06759, 0.10286, 0.20385, 0.2579, 0.753, 1.2979, 1.61863, 1.69274, 1.7827, 1.86088, 2.00849, 2.08978, 2.14763, 2.24986, 2.32267, 2.45383, 2.55755, 2.61839, 2.69121, 2.72014, 2.74607, 2.82386, 2.93274, 3.0442, 3.13758, 3.4926, 3.5229, 3.55268, 3.58796, 3.6383, 3.68272, 3.72259, 3.75753, 3.79281, 3.84024, 3.89509, 3.9261, 3.96121, 4.38345, 4.42143, 1.60549, 1.64588, 1.66611, 1.6911, 1.72001, 1.75031, 1.90919, 1.9421, 1.97102, 1.99895, 2.00693, 2.08722, 2.09919, 2.13111, 2.19892, 2.26575, 2.28321, 2.29717, 2.3231, 2.34205, 2.36699, 2.38893, 2.40688, 2.4378, 2.46273, 2.50413, 2.53106, 3.07496, 3.13511, 3.16031, 3.20273, 3.22487, 3.26114, 3.29143, 3.31529, 3.34507, 3.37024, 3.3945, 3.43531, 3.46362, 3.50004, 1.54581, 1.566, 1.59428, 1.61661, 1.63481, 1.64693, 1.68127, 1.98115, 2.07242, 2.13325, 2.18113, 2.25991, 2.31727, 1.82972, 1.89654, 2.04765, 2.10449, 2.16433, 2.21121, 2.32242, 2.38027, 2.43463, 2.46256, 2.47853, 2.5234, 2.55431, 2.59221, 2.61914, 2.68, 2.74382, 2.74981, 2.79968, 2.84019, 2.84223, 2.86252, 2.89241, 2.96748, 3.03424, 3.50271, 4.03715, 4.30524, 4.38327, 4.48275, 4.55626, 4.65751, 4.73431, 4.80021, 4.89823, 4.97422, 5.06532, 5.15623, 5.21921, 5.30028, 5.34427, 1.95757, 2.10069, 2.21937, 2.33358, 2.44328, 2.82579, 2.85471, 2.89261, 2.92358, 2.96369, 3.02418, 3.05442, 3.09478, 3.13828, 3.17862, 3.22854, 3.26835, 3.29857, 3.71364, 3.74338, 3.90083, 3.94124, 3.96386, 3.99585, 4.03897, 4.08102, 4.26213, 4.30113, 4.33716, 4.36419, 4.37718, 4.47619, 4.48719, 4.53317, 4.62217, 4.70258, 4.72253, 4.74846, 4.78735, 4.8083, 4.83622, 1.97613, 1.99708, 2.04694, 2.08036, 2.13422, 2.16214, 2.80048, 2.82941, 2.85034, 2.88326, 2.90477, 2.94488, 2.9807, 3.01092, 3.0503, 3.08154, 3.12202, 3.14521, 3.18501, 3.22539, 3.26012, 3.27525, 3.29543, 3.33401, 3.35516, 3.36523, 2.18487, 2.41376, 2.45764, 2.50053, 2.54991, 2.6277, 2.68655, 2.7414, 2.81023, 2.99198, 3.08267, 3.15901, 3.22404, 3.37751, 3.42591, 3.48653, 3.51925, 3.5395, 3.61388, 3.64369, 3.68903, 3.73126, 3.79992, 3.88381, 3.89083, 3.93115, 3.98214, 3.98715, 2.33323, 2.35816, 2.43495, 2.4973, 2.9414, 3.47116, 3.72916, 3.80093, 3.89126, 3.95255, 4.04473, 4.14978, 4.21782, 4.33386, 4.42688, 4.51888, 4.60888, 4.68029, 4.75708, 4.78501, 4.80296, 4.88487, 4.98488, 5.10085, 5.2029, 5.26388, 5.3819, 5.45987, 5.55194, 5.62889, 5.68689, 5.77328, 5.84608, 5.95597, 6.08594, 6.16496, 6.24593, 6.28635, 6.30604, 6.38617, 6.49424, 3.21079, 3.30152, 3.65027, 3.68573, 3.7261, 3.77656, 3.81003, 3.84727, 3.88767, 3.92351, 3.98155, 4.02567, 4.07477, 4.12776, 4.16875, 4.58037, 4.61088, 4.7401, 4.78997, 4.81889, 4.84385, 4.87584, 4.90883, 5.07484, 5.11499, 5.1489, 5.18187, 5.19089, 5.27686, 5.28684, 5.34092, 5.43386, 5.52996, 5.55192, 5.56587, 5.6009, 5.62188, 5.64987, 5.67089, 5.68985, 5.72089, 3.39246, 3.43289, 3.46561, 4.05571, 4.09029, 4.11377, 4.15975, 4.17874, 4.22031, 4.24881, 4.27482, 4.33583, 4.36586, 4.39186, 4.42036, 4.44985, 4.47986, 4.52984, 4.5509, 4.57089, 4.60187, 4.62288, 4.63886, 3.53651, 3.78986, 3.83515, 3.8796, 3.91992, 4.05565, 4.12268, 4.19072, 4.27873, 4.45877, 4.52177, 4.59079, 4.63925, 4.75195, 4.8058, 4.86025, 4.89475, 4.91879, 4.97276, 5.02024, 5.05973, 5.09043, 5.14977, 5.20874, 5.21575, 5.26677, 5.30873, 5.31175, 5.33181, 5.38777, 5.46875, 4.03918, 4.49551, 4.99451, 5.30148, 5.37246, 5.49852, 5.57862, 5.67951, 5.75751, 5.81891, 5.91166, 5.98858, 6.09463, 6.22057, 6.28655, 6.36871, 6.39894, 6.41564, 6.50395, 6.62569, 6.7292, 6.84392, 7.19863, 7.2249, 7.27384, 7.30568, 7.37877, 7.43873, 7.48524, 7.51757, 7.55831, 7.59895, 7.6394, 7.67981, 7.72377, 8.11386, 8.17405, 8.30526, 8.35359, 8.37577, 8.39888, 4.45843, 4.49743, 4.65776, 4.68669, 4.7196, 4.74752, 4.7565, 4.83941, 4.85292, 4.89444, 4.9794, 5.06357, 5.08152, 5.09449, 5.12045, 5.14142, 5.16442, 5.18842, 5.21742, 5.2504, 5.2814, 5.31351, 5.34645, 5.91151, 5.94952, 5.97049, 6.03351, 6.06553, 6.10149, 6.13748, 6.17047, 6.20767, 6.25407, 6.2878, 6.31758, 6.34476, 6.3752, 6.40793, 6.42808, 6.44779, 6.47765, 4.66031, 4.67527, 4.70619, 4.94386, 4.99784, 5.03882, 5.07683, 5.16091, 5.22485, 5.29683, 5.38386, 5.52996, 5.58885, 4.90015, 4.9582, 5.07314, 5.13532, 5.18423, 5.21519, 5.23317, 5.27817, 5.31016, 5.35015, 5.39521, 5.49818, 5.56326, 5.56924, 5.61519, 5.6572, 5.66119, 5.67818, 5.70117, 5.77861, 5.83546, 6.31872, 6.86342, 7.1441, 7.21824, 7.3383, 7.39834, 7.48522, 7.56354, 7.64343, 7.74346, 7.82348, 7.91359, 8.02362, 8.14373, 8.22456, 8.25478, 8.27494, 8.36354, 8.46396, 8.56768, 5.46134, 5.82034, 5.85031, 5.89131, 5.9383, 5.97633, 6.01629, 6.0883, 6.13227, 6.17728, 6.2177, 6.25401, 6.29438, 6.32757, 6.78255, 6.82086, 6.96734, 7.01272, 7.03292, 7.07129, 7.1127, 7.16267, 7.34584, 7.38261, 7.41657, 7.4473, 7.45745, 7.54285, 7.56866, 7.61263, 7.6978, 7.77277, 7.79038, 7.80746, 7.83274, 7.85251, 7.87765, 7.90136, 7.94274, 7.98751, 8.03259, 5.5079, 5.5448, 6.13184, 6.16783, 6.19581, 6.23182, 6.25507, 6.28937, 6.32163, 6.35492, 6.38209, 6.4105, 6.43519, 6.46541, 6.50128, 6.52507, 6.57204, 6.59424, 6.6124, 6.63459, 6.65317, 6.66547, 5.62188, 5.88198, 5.94097, 5.98493, 6.03593, 6.14194, 6.2079, 6.27124, 6.33523, 6.49119, 6.57407, 6.64265, 6.6957, 6.82788, 6.88647, 6.96535, 7.00976, 7.02996, 7.07519, 7.11066, 7.15112, 7.17931, 7.24492, 7.30241, 7.30492, 7.34525, 7.39325, 7.4034, 7.43362, 7.46393, 7.54531, 7.61047, 6.16044, 6.68008, 6.95003, 7.03497, 7.14907, 7.22523, 7.31498, 7.38509, 7.45529, 7.55998, 7.63426, 7.73026, 7.82782, 7.88826, 7.96698, 8.0003, 8.01739, 8.10826, 8.2153, 8.32514, 8.4167, 8.74365, 8.7705, 8.80586, 8.8302, 8.85032, 8.87711, 8.91051, 8.9302, 8.95606, 8.98018, 9.00023, 9.03014, 9.06066, 9.34056, 9.36288, 9.47002, 9.49437, 9.51251, 9.52472, 9.55012, 6.53266, 6.73508, 6.76109, 6.79131, 6.84113, 6.8512, 6.95812, 6.97149, 7.02142, 7.11169, 7.20608, 7.23285, 7.25307, 7.29132, 7.32366, 7.34628, 7.36645, 7.38612, 7.42457, 7.45632, 7.50108, 7.53621, 8.14162, 8.18212, 8.20227, 8.24052, 8.26623, 8.30098, 8.33322, 8.36139, 8.38681, 8.41174, 8.43967, 8.4656, 8.49053, 8.51846, 8.55037, 8.57132, 8.59526, 8.6172, 8.63345, 6.49279, 6.54276, 6.79267, 6.84258, 6.89148, 6.94771, 7.04248, 7.11777, 7.19245, 7.25498, 7.4165, 7.50295, 7.58886, 6.73003, 6.87032, 6.9268, 7.00776, 7.03492, 7.05807, 7.10057, 7.14906, 7.20505, 7.25503, 7.32058, 7.375, 7.38316, 7.42353, 7.46405, 7.47007, 7.48443, 7.52002, 7.59381, 7.68027, 8.15085, 8.70325, 8.90751, 9.14817, 9.17046, 9.20025, 9.22084, 9.25008, 9.27507, 9.30185, 9.33501, 9.36285, 9.39121, 9.42004, 9.44178, 9.46399, 9.70568, 9.72576, 9.81003, 9.84033, 9.84994, 7.63629, 7.69037, 7.73026, 7.91003, 7.94527, 7.99023, 8.03751, 8.04758, 8.15888, 8.17103, 8.20927, 8.27533, 8.35533, 8.37247, 8.38778, 8.41371, 8.43665, 8.46058, 8.48252, 8.50247, 8.53538, 8.55932, 8.59423, 8.62415, 9.09806, 9.12056, 9.14036, 9.16529, 9.17855, 9.20088, 9.23094, 9.25027, 9.2715, 9.29024, 9.3099, 9.33247, 9.35277, 9.37295, 9.40333, 9.41344, 9.43367, 7.61261, 7.63283, 7.64952, 7.69289, 7.9428, 8.01279, 8.08257, 8.13767, 8.21777, 8.28476, 8.35132, 8.41216, 8.56575, 8.10741, 8.19255, 8.24743, 8.36105, 8.42787, 8.47773, 8.51164, 8.53358, 8.5749, 8.60765, 8.64572, 8.67399, 8.73268, 8.77918, 8.7827, 8.80748, 8.84288, 8.84797, 8.86258, 8.88292, 8.94121, 8.98265, 9.29324, 9.61287, 9.77269] 6 | #y_sorted = [0.0151, 0.03026, 0.03026, 0.03834, 0.04046, 0.04946, 0.04999, 0.0505, 0.05244, 0.05499, 0.06759, 0.06762, 0.07619, 0.0777, 0.08025, 0.10097, 0.10107, 0.10286, 0.10495, 0.11801, 0.12827, 0.12913, 0.13014, 0.13131, 0.15028, 0.15142, 0.15346, 0.16037, 0.16488, 0.17156, 0.17496, 0.19061, 0.19383, 0.19829, 0.20385, 0.221, 0.22199, 0.22497, 0.22833, 0.25124, 0.2579, 0.26132, 0.26449, 0.28508, 0.29167, 0.29481, 0.31848, 0.32205, 0.32865, 0.33336, 0.35533, 0.35843, 0.3615, 0.38591, 0.39088, 0.41111, 0.41253, 0.41872, 0.43024, 0.44852, 0.45041, 0.45291, 0.47482, 0.47513, 0.47616, 0.47616, 0.48483, 0.50187, 0.50187, 0.50497, 0.50852, 0.51298, 0.51298, 0.5251, 0.53324, 0.53881, 0.56043, 0.57362, 0.58469, 0.58817, 0.59583, 0.61536, 0.62143, 0.62819, 0.63379, 0.64674, 0.64878, 0.65024, 0.65386, 0.65649, 0.65675, 0.67694, 0.69608, 0.71121, 0.7195, 0.73044, 0.7456, 0.753, 0.76382, 0.77391, 0.78612, 0.80043, 0.80043, 0.82114, 0.83022, 0.86908, 0.87617, 0.90017, 0.91027, 0.91129, 0.92991, 0.94103, 0.94368, 0.94707, 0.95009, 0.95011, 0.95013, 0.95368, 0.95745, 0.98859, 0.99061, 0.9994, 0.99995, 1.01883, 1.02005, 1.04098, 1.04257, 1.0463, 1.0463, 1.0503, 1.05033, 1.06897, 1.06997, 1.07099, 1.08378, 1.08909, 1.09009, 1.1001, 1.10332, 1.11122, 1.11304, 1.11404, 1.1283, 1.1283, 1.13635, 1.13832, 1.13865, 1.16049, 1.16153, 1.16501, 1.16884, 1.17369, 1.18517, 1.18619, 1.19401, 1.20083, 1.21089, 1.21193, 1.21491, 1.22423, 1.23106, 1.2412, 1.24128, 1.2443, 1.26597, 1.26949, 1.27163, 1.28172, 1.2847, 1.29521, 1.29636, 1.2979, 1.29984, 1.30191, 1.31508, 1.32613, 1.34031, 1.3504, 1.35241, 1.35494, 1.35555, 1.35596, 1.36531, 1.37826, 1.386, 1.38882, 1.39109, 1.39511, 1.39739, 1.4145, 1.415, 1.41898, 1.42669, 1.44377, 1.44688, 1.46197, 1.46198, 1.48723, 1.51553, 1.52252, 1.52874, 1.53466, 1.54581, 1.55343, 1.5581, 1.566, 1.58633, 1.59428, 1.60549, 1.61661, 1.61863, 1.63481, 1.63929, 1.64032, 1.64588, 1.64693, 1.65397, 1.66611, 1.66922, 1.66922, 1.68127, 1.6897, 1.6911, 1.69274, 1.69278, 1.69953, 1.70357, 1.72001, 1.72041, 1.73258, 1.74334, 1.75031, 1.7685, 1.77265, 1.78073, 1.7827, 1.78374, 1.78561, 1.79331, 1.81347, 1.81908, 1.8211, 1.82972, 1.83925, 1.84028, 1.84746, 1.84929, 1.86088, 1.86391, 1.87727, 1.88438, 1.89183, 1.89654, 1.90371, 1.90919, 1.91856, 1.92926, 1.93861, 1.9421, 1.944, 1.95757, 1.97102, 1.97613, 1.97791, 1.98115, 1.99708, 1.99895, 2.00693, 2.00849, 2.01082, 2.03974, 2.04694, 2.04765, 2.06966, 2.07242, 2.08036, 2.08722, 2.08934, 2.08978, 2.09859, 2.09919, 2.10069, 2.10449, 2.12602, 2.13111, 2.13325, 2.13422, 2.14763, 2.15295, 2.16214, 2.16214, 2.16433, 2.18113, 2.18487, 2.18907, 2.19892, 2.21121, 2.215, 2.21937, 2.24986, 2.2519, 2.25991, 2.26575, 2.28321, 2.28732, 2.29717, 2.31727, 2.32242, 2.32267, 2.3231, 2.33323, 2.33358, 2.34205, 2.35816, 2.36699, 2.38027, 2.38893, 2.40688, 2.41376, 2.43463, 2.43495, 2.4378, 2.44328, 2.45383, 2.45764, 2.46256, 2.46273, 2.47853, 2.4913, 2.4973, 2.50053, 2.50413, 2.5234, 2.53106, 2.53317, 2.54991, 2.55431, 2.55755, 2.56908, 2.59221, 2.59601, 2.60398, 2.61839, 2.61914, 2.6277, 2.68, 2.68655, 2.68676, 2.69121, 2.69525, 2.72014, 2.72767, 2.7414, 2.74382, 2.74607, 2.74981, 2.79968, 2.80048, 2.81023, 2.82242, 2.82386, 2.82579, 2.82941, 2.84019, 2.84223, 2.85034, 2.85471, 2.86252, 2.88326, 2.89241, 2.89261, 2.90477, 2.91486, 2.92358, 2.93274, 2.93515, 2.9414, 2.94488, 2.95047, 2.96369, 2.96748, 2.9807, 2.9807, 2.99198, 3.01092, 3.01493, 3.02418, 3.03424, 3.0442, 3.0503, 3.05442, 3.07496, 3.08154, 3.08267, 3.09478, 3.12202, 3.13511, 3.13758, 3.13828, 3.14521, 3.15901, 3.16031, 3.17862, 3.18501, 3.20273, 3.21079, 3.22404, 3.22487, 3.22539, 3.22854, 3.26012, 3.26114, 3.26835, 3.27525, 3.29143, 3.29543, 3.29857, 3.30152, 3.31529, 3.33401, 3.34507, 3.35516, 3.36523, 3.37024, 3.37751, 3.39246, 3.3945, 3.42591, 3.43289, 3.43531, 3.46362, 3.46561, 3.47116, 3.48653, 3.4926, 3.50004, 3.50271, 3.51925, 3.5229, 3.53651, 3.5395, 3.55268, 3.58796, 3.61388, 3.6383, 3.64369, 3.65027, 3.68272, 3.68573, 3.68903, 3.71364, 3.72259, 3.7261, 3.72916, 3.73126, 3.74338, 3.75753, 3.77656, 3.78986, 3.79281, 3.79992, 3.80093, 3.81003, 3.83515, 3.84024, 3.84727, 3.8796, 3.88381, 3.88767, 3.89083, 3.89126, 3.89509, 3.90083, 3.91992, 3.92351, 3.9261, 3.93115, 3.94124, 3.95255, 3.96121, 3.96386, 3.98155, 3.98214, 3.98715, 3.99585, 4.02567, 4.03715, 4.03897, 4.03918, 4.04473, 4.05565, 4.05571, 4.07477, 4.08102, 4.09029, 4.11377, 4.12268, 4.12776, 4.14978, 4.15975, 4.16875, 4.17874, 4.19072, 4.21782, 4.22031, 4.24881, 4.26213, 4.27482, 4.27873, 4.30113, 4.30524, 4.33386, 4.33583, 4.33716, 4.36419, 4.36586, 4.37718, 4.38327, 4.38345, 4.39186, 4.42036, 4.42143, 4.42688, 4.44985, 4.45843, 4.45877, 4.47619, 4.47986, 4.48275, 4.48719, 4.49551, 4.49743, 4.51888, 4.52177, 4.52984, 4.53317, 4.5509, 4.55626, 4.57089, 4.58037, 4.59079, 4.60187, 4.60888, 4.61088, 4.62217, 4.62288, 4.63886, 4.63925, 4.65751, 4.65776, 4.66031, 4.67527, 4.68029, 4.68669, 4.70258, 4.70619, 4.7196, 4.72253, 4.73431, 4.7401, 4.74752, 4.74846, 4.75195, 4.7565, 4.75708, 4.78501, 4.78735, 4.78997, 4.80021, 4.80296, 4.8058, 4.8083, 4.81889, 4.83622, 4.83941, 4.84385, 4.85292, 4.86025, 4.87584, 4.88487, 4.89444, 4.89475, 4.89823, 4.90015, 4.90883, 4.91879, 4.94386, 4.9582, 4.97276, 4.97422, 4.9794, 4.98488, 4.99451, 4.99784, 5.02024, 5.03882, 5.05973, 5.06357, 5.06532, 5.07314, 5.07484, 5.07683, 5.08152, 5.09043, 5.09449, 5.10085, 5.11499, 5.12045, 5.13532, 5.14142, 5.1489, 5.14977, 5.15623, 5.16091, 5.16442, 5.18187, 5.18423, 5.18842, 5.19089, 5.2029, 5.20874, 5.21519, 5.21575, 5.21742, 5.21921, 5.22485, 5.23317, 5.2504, 5.26388, 5.26677, 5.27686, 5.27817, 5.2814, 5.28684, 5.29683, 5.30028, 5.30148, 5.30873, 5.31016, 5.31175, 5.31351, 5.33181, 5.34092, 5.34427, 5.34645, 5.35015, 5.37246, 5.3819, 5.38386, 5.38777, 5.39521, 5.43386, 5.45987, 5.46134, 5.46875, 5.49818, 5.49852, 5.5079, 5.52996, 5.52996, 5.5448, 5.55192, 5.55194, 5.56326, 5.56587, 5.56924, 5.57862, 5.58885, 5.6009, 5.61519, 5.62188, 5.62188, 5.62889, 5.64987, 5.6572, 5.66119, 5.67089, 5.67818, 5.67951, 5.68689, 5.68985, 5.70117, 5.72089, 5.75751, 5.77328, 5.77861, 5.81891, 5.82034, 5.83546, 5.84608, 5.85031, 5.88198, 5.89131, 5.91151, 5.91166, 5.9383, 5.94097, 5.94952, 5.95597, 5.97049, 5.97633, 5.98493, 5.98858, 6.01629, 6.03351, 6.03593, 6.06553, 6.08594, 6.0883, 6.09463, 6.10149, 6.13184, 6.13227, 6.13748, 6.14194, 6.16044, 6.16496, 6.16783, 6.17047, 6.17728, 6.19581, 6.20767, 6.2079, 6.2177, 6.22057, 6.23182, 6.24593, 6.25401, 6.25407, 6.25507, 6.27124, 6.28635, 6.28655, 6.2878, 6.28937, 6.29438, 6.30604, 6.31758, 6.31872, 6.32163, 6.32757, 6.33523, 6.34476, 6.35492, 6.36871, 6.3752, 6.38209, 6.38617, 6.39894, 6.40793, 6.4105, 6.41564, 6.42808, 6.43519, 6.44779, 6.46541, 6.47765, 6.49119, 6.49279, 6.49424, 6.50128, 6.50395, 6.52507, 6.53266, 6.54276, 6.57204, 6.57407, 6.59424, 6.6124, 6.62569, 6.63459, 6.64265, 6.65317, 6.66547, 6.68008, 6.6957, 6.7292, 6.73003, 6.73508, 6.76109, 6.78255, 6.79131, 6.79267, 6.82086, 6.82788, 6.84113, 6.84258, 6.84392, 6.8512, 6.86342, 6.87032, 6.88647, 6.89148, 6.9268, 6.94771, 6.95003, 6.95812, 6.96535, 6.96734, 6.97149, 7.00776, 7.00976, 7.01272, 7.02142, 7.02996, 7.03292, 7.03492, 7.03497, 7.04248, 7.05807, 7.07129, 7.07519, 7.10057, 7.11066, 7.11169, 7.1127, 7.11777, 7.1441, 7.14906, 7.14907, 7.15112, 7.16267, 7.17931, 7.19245, 7.19863, 7.20505, 7.20608, 7.21824, 7.2249, 7.22523, 7.23285, 7.24492, 7.25307, 7.25498, 7.25503, 7.27384, 7.29132, 7.30241, 7.30492, 7.30568, 7.31498, 7.32058, 7.32366, 7.3383, 7.34525, 7.34584, 7.34628, 7.36645, 7.375, 7.37877, 7.38261, 7.38316, 7.38509, 7.38612, 7.39325, 7.39834, 7.4034, 7.4165, 7.41657, 7.42353, 7.42457, 7.43362, 7.43873, 7.4473, 7.45529, 7.45632, 7.45745, 7.46393, 7.46405, 7.47007, 7.48443, 7.48522, 7.48524, 7.50108, 7.50295, 7.51757, 7.52002, 7.53621, 7.54285, 7.54531, 7.55831, 7.55998, 7.56354, 7.56866, 7.58886, 7.59381, 7.59895, 7.61047, 7.61261, 7.61263, 7.63283, 7.63426, 7.63629, 7.6394, 7.64343, 7.64952, 7.67981, 7.68027, 7.69037, 7.69289, 7.6978, 7.72377, 7.73026, 7.73026, 7.74346, 7.77277, 7.79038, 7.80746, 7.82348, 7.82782, 7.83274, 7.85251, 7.87765, 7.88826, 7.90136, 7.91003, 7.91359, 7.94274, 7.9428, 7.94527, 7.96698, 7.98751, 7.99023, 8.0003, 8.01279, 8.01739, 8.02362, 8.03259, 8.03751, 8.04758, 8.08257, 8.10741, 8.10826, 8.11386, 8.13767, 8.14162, 8.14373, 8.15085, 8.15888, 8.17103, 8.17405, 8.18212, 8.19255, 8.20227, 8.20927, 8.2153, 8.21777, 8.22456, 8.24052, 8.24743, 8.25478, 8.26623, 8.27494, 8.27533, 8.28476, 8.30098, 8.30526, 8.32514, 8.33322, 8.35132, 8.35359, 8.35533, 8.36105, 8.36139, 8.36354, 8.37247, 8.37577, 8.38681, 8.38778, 8.39888, 8.41174, 8.41216, 8.41371, 8.4167, 8.42787, 8.43665, 8.43967, 8.46058, 8.46396, 8.4656, 8.47773, 8.48252, 8.49053, 8.50247, 8.51164, 8.51846, 8.53358, 8.53538, 8.55037, 8.55932, 8.56575, 8.56768, 8.57132, 8.5749, 8.59423, 8.59526, 8.60765, 8.6172, 8.62415, 8.63345, 8.64572, 8.67399, 8.70325, 8.73268, 8.74365, 8.7705, 8.77918, 8.7827, 8.80586, 8.80748, 8.8302, 8.84288, 8.84797, 8.85032, 8.86258, 8.87711, 8.88292, 8.90751, 8.91051, 8.9302, 8.94121, 8.95606, 8.98018, 8.98265, 9.00023, 9.03014, 9.06066, 9.09806, 9.12056, 9.14036, 9.14817, 9.16529, 9.17046, 9.17855, 9.20025, 9.20088, 9.22084, 9.23094, 9.25008, 9.25027, 9.2715, 9.27507, 9.29024, 9.29324, 9.30185, 9.3099, 9.33247, 9.33501, 9.34056, 9.35277, 9.36285, 9.36288, 9.37295, 9.39121, 9.40333, 9.41344, 9.42004, 9.43367, 9.44178, 9.46399, 9.47002, 9.49437, 9.51251, 9.52472, 9.55012, 9.61287, 9.70568, 9.72576, 9.77269, 9.81003, 9.84033, 9.84994] 7 | # Function to plot 8 | plt.plot(x,y) 9 | 10 | plt.xlabel('Image Count') 11 | plt.ylabel('Time Sorted') 12 | 13 | plt.title('Multiple Core Execution') 14 | # function to show the plot 15 | plt.show() 16 | 17 | 18 | 19 | """ 20 | l = [[1, 0.10107], [2, 0.19383], [3, 0.31848], [4, 0.47482], [5, 0.65649], [6, 0.76382], [7, 0.95013], [8, 0.95368], [9, 0.98859], [10, 0.99061], [11, 1.01883], [12, 1.04098], [13, 1.08378], [14, 1.11404], [15, 1.13865], [16, 1.16884], [17, 1.19401], [18, 1.22423], [19, 1.2847], [20, 1.31508], [21, 1.35555], [22, 1.38882], [23, 1.41898], [24, 1.52874], [25, 1.65397], [26, 1.78073], [27, 1.78374], [28, 1.81908], [29, 1.8211], [30, 1.83925], [31, 1.86391], [32, 1.89183], [33, 1.91856], [34, 1.944], [35, 1.97791], [36, 2.01082], [37, 2.03974], [38, 2.06966], [39, 2.09859], [40, 2.12602], [41, 2.15295], [1, 0.04046], [2, 0.12827], [3, 0.13131], [4, 0.15142], [5, 0.15346], [6, 0.17156], [7, 0.19829], [8, 0.22833], [9, 0.26449], [10, 0.29481], [11, 0.32865], [12, 0.35843], [13, 0.38591], [14, 0.41872], [15, 0.44852], [16, 0.48483], [17, 0.50852], [18, 0.53881], [19, 0.62819], [20, 0.63379], [21, 0.64878], [22, 0.65386], [23, 0.77391], [24, 0.94368], [25, 1.10332], [26, 1.2443], [27, 1.37826], [28, 1.55343], [29, 1.66922], [30, 1.66922], [31, 1.69953], [32, 1.70357], [33, 1.72041], [34, 1.74334], [35, 1.7685], [36, 1.79331], [37, 1.81347], [38, 1.84929], [39, 1.87727], [40, 1.90371], [41, 1.93861], [1, 0.03834], [2, 0.07619], [3, 0.10097], [4, 0.12913], [5, 0.22199], [6, 0.3615], [7, 0.47616], [8, 0.47616], [9, 0.51298], [10, 0.51298], [11, 0.53324], [12, 0.57362], [13, 0.59583], [14, 0.62143], [15, 0.64674], [16, 0.67694], [17, 0.71121], [18, 0.7456], [19, 0.78612], [20, 0.82114], [21, 0.86908], [22, 0.91129], [23, 0.94103], [24, 1.0463], [25, 1.0463], [26, 1.06897], [27, 1.07099], [28, 1.08909], [29, 1.11122], [30, 1.13635], [31, 1.16153], [32, 1.18619], [33, 1.21193], [34, 1.2412], [35, 1.26597], [36, 1.29636], [37, 1.32613], [38, 1.35596], [39, 1.386], [40, 1.4145], [41, 1.51553], [1, 0.0151], [2, 0.03026], [3, 0.03026], [4, 0.05499], [5, 0.0777], [6, 0.10495], [7, 0.13014], [8, 0.16488], [9, 0.19061], [10, 0.22497], [11, 0.26132], [12, 0.29167], [13, 0.32205], [14, 0.35533], [15, 0.39088], [16, 0.43024], [17, 0.45041], [18, 0.47513], [19, 0.50187], [20, 0.5251], [21, 0.56043], [22, 0.58469], [23, 0.61536], [24, 0.65024], [25, 0.69608], [26, 0.73044], [27, 0.80043], [28, 0.83022], [29, 0.87617], [30, 0.95011], [31, 1.06997], [32, 1.1283], [33, 1.21491], [34, 1.28172], [35, 1.3504], [36, 1.46198], [37, 1.53466], [38, 1.64032], [39, 1.78561], [40, 1.84028], [41, 1.92926], [1, 0.04946], [2, 0.06762], [3, 0.16037], [4, 0.28508], [5, 0.41111], [6, 0.50187], [7, 0.91027], [8, 0.94707], [9, 0.99995], [10, 1.05033], [11, 1.09009], [12, 1.1283], [13, 1.16501], [14, 1.20083], [15, 1.23106], [16, 1.26949], [17, 1.30191], [18, 1.35494], [19, 1.39109], [20, 1.84746], [21, 1.88438], [22, 2.08934], [23, 2.16214], [24, 2.18907], [25, 2.215], [26, 2.2519], [27, 2.28732], [28, 2.4913], [29, 2.53317], [30, 2.56908], [31, 2.59601], [32, 2.60398], [33, 2.68676], [34, 2.69525], [35, 2.72767], [36, 2.82242], [37, 2.91486], [38, 2.93515], [39, 2.95047], [40, 2.9807], [41, 3.01493], [1, 0.04999], [2, 0.08025], [3, 0.11801], [4, 0.15028], [5, 0.17496], [6, 0.221], [7, 0.25124], [8, 0.90017], [9, 0.92991], [10, 0.95009], [11, 0.9994], [12, 1.02005], [13, 1.0503], [14, 1.1001], [15, 1.13832], [16, 1.16049], [17, 1.18517], [18, 1.21089], [19, 1.24128], [20, 1.27163], [21, 1.29984], [22, 1.34031], [23, 1.36531], [24, 1.39511], [25, 1.415], [26, 1.44377], [27, 1.46197], None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, [1, 0.05244], [2, 0.33336], [3, 0.41253], [4, 0.45291], [5, 0.50497], [6, 0.58817], [7, 0.65675], [8, 0.7195], [9, 0.80043], [10, 0.95745], [11, 1.04257], [12, 1.11304], [13, 1.17369], [14, 1.29521], [15, 1.35241], [16, 1.39739], [17, 1.42669], [18, 1.44688], [19, 1.48723], [20, 1.52252], [21, 1.5581], [22, 1.58633], [23, 1.63929], [24, 1.6897], [25, 1.69278], [26, 1.73258], [27, 1.77265], [1, 0.0505], [2, 0.06759], [3, 0.10286], [4, 0.20385], [5, 0.2579], [6, 0.753], [7, 1.2979], [8, 1.61863], [9, 1.69274], [10, 1.7827], [11, 1.86088], [12, 2.00849], [13, 2.08978], [14, 2.14763], [15, 2.24986], [16, 2.32267], [17, 2.45383], [18, 2.55755], [19, 2.61839], [20, 2.69121], [21, 2.72014], [22, 2.74607], [23, 2.82386], [24, 2.93274], [25, 3.0442], [26, 3.13758], [27, 3.4926], [28, 3.5229], [29, 3.55268], [30, 3.58796], [31, 3.6383], [32, 3.68272], [33, 3.72259], [34, 3.75753], [35, 3.79281], [36, 3.84024], [37, 3.89509], [38, 3.9261], [39, 3.96121], [40, 4.38345], [41, 4.42143], [28, 1.60549], [29, 1.64588], [30, 1.66611], [31, 1.6911], [32, 1.72001], [33, 1.75031], [34, 1.90919], [35, 1.9421], [36, 1.97102], [37, 1.99895], [38, 2.00693], [39, 2.08722], [40, 2.09919], [41, 2.13111], [42, 2.19892], [43, 2.26575], [44, 2.28321], [45, 2.29717], [46, 2.3231], [47, 2.34205], [48, 2.36699], [49, 2.38893], [50, 2.40688], [51, 2.4378], [52, 2.46273], [53, 2.50413], [54, 2.53106], [55, 3.07496], [56, 3.13511], [57, 3.16031], [58, 3.20273], [59, 3.22487], [60, 3.26114], [61, 3.29143], [62, 3.31529], [63, 3.34507], [64, 3.37024], [65, 3.3945], [66, 3.43531], [67, 3.46362], [68, 3.50004], [42, 1.54581], [43, 1.566], [44, 1.59428], [45, 1.61661], [46, 1.63481], [47, 1.64693], None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, [48, 1.68127], [49, 1.98115], [50, 2.07242], [51, 2.13325], [52, 2.18113], [53, 2.25991], [54, 2.31727], [28, 1.82972], [29, 1.89654], [30, 2.04765], [31, 2.10449], [32, 2.16433], [33, 2.21121], [34, 2.32242], [35, 2.38027], [36, 2.43463], [37, 2.46256], [38, 2.47853], [39, 2.5234], [40, 2.55431], [41, 2.59221], [42, 2.61914], [43, 2.68], [44, 2.74382], [45, 2.74981], [46, 2.79968], [47, 2.84019], [48, 2.84223], [49, 2.86252], [50, 2.89241], [51, 2.96748], [52, 3.03424], [53, 3.50271], [54, 4.03715], [55, 4.30524], [56, 4.38327], [57, 4.48275], [58, 4.55626], [59, 4.65751], [60, 4.73431], [61, 4.80021], [62, 4.89823], [63, 4.97422], [64, 5.06532], [65, 5.15623], [66, 5.21921], [67, 5.30028], [68, 5.34427], [42, 1.95757], [43, 2.10069], [44, 2.21937], [45, 2.33358], [46, 2.44328], [47, 2.82579], [48, 2.85471], [49, 2.89261], [50, 2.92358], [51, 2.96369], [52, 3.02418], [53, 3.05442], [54, 3.09478], [55, 3.13828], [56, 3.17862], [57, 3.22854], [58, 3.26835], [59, 3.29857], [60, 3.71364], [61, 3.74338], [62, 3.90083], [63, 3.94124], [64, 3.96386], [65, 3.99585], [66, 4.03897], [67, 4.08102], [68, 4.26213], [69, 4.30113], [70, 4.33716], [71, 4.36419], [72, 4.37718], [73, 4.47619], [74, 4.48719], [75, 4.53317], [76, 4.62217], [77, 4.70258], [78, 4.72253], [79, 4.74846], [80, 4.78735], [81, 4.8083], [82, 4.83622], [42, 1.97613], [43, 1.99708], [44, 2.04694], [45, 2.08036], [46, 2.13422], [47, 2.16214], [48, 2.80048], [49, 2.82941], [50, 2.85034], [51, 2.88326], [52, 2.90477], [53, 2.94488], [54, 2.9807], [55, 3.01092], [56, 3.0503], [57, 3.08154], [58, 3.12202], [59, 3.14521], [60, 3.18501], [61, 3.22539], [62, 3.26012], [63, 3.27525], [64, 3.29543], [65, 3.33401], [66, 3.35516], [67, 3.36523], None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, [42, 2.18487], [43, 2.41376], [44, 2.45764], [45, 2.50053], [46, 2.54991], [47, 2.6277], [48, 2.68655], [49, 2.7414], [50, 2.81023], [51, 2.99198], [52, 3.08267], [53, 3.15901], [54, 3.22404], [55, 3.37751], [56, 3.42591], [57, 3.48653], [58, 3.51925], [59, 3.5395], [60, 3.61388], [61, 3.64369], [62, 3.68903], [63, 3.73126], [64, 3.79992], [65, 3.88381], [66, 3.89083], [67, 3.93115], [68, 3.98214], [69, 3.98715], [55, 2.33323], [56, 2.35816], [57, 2.43495], [58, 2.4973], [59, 2.9414], [60, 3.47116], [61, 3.72916], [62, 3.80093], [63, 3.89126], [64, 3.95255], [65, 4.04473], [66, 4.14978], [67, 4.21782], [68, 4.33386], [69, 4.42688], [70, 4.51888], [71, 4.60888], [72, 4.68029], [73, 4.75708], [74, 4.78501], [75, 4.80296], [76, 4.88487], [77, 4.98488], [78, 5.10085], [79, 5.2029], [80, 5.26388], [81, 5.3819], [82, 5.45987], [83, 5.55194], [84, 5.62889], [85, 5.68689], [86, 5.77328], [87, 5.84608], [88, 5.95597], [89, 6.08594], [90, 6.16496], [91, 6.24593], [92, 6.28635], [93, 6.30604], [94, 6.38617], [95, 6.49424], [42, 3.21079], [43, 3.30152], [44, 3.65027], [45, 3.68573], [46, 3.7261], [47, 3.77656], [48, 3.81003], [49, 3.84727], [50, 3.88767], [51, 3.92351], [52, 3.98155], [53, 4.02567], [54, 4.07477], [55, 4.12776], [56, 4.16875], [57, 4.58037], [58, 4.61088], [59, 4.7401], [60, 4.78997], [61, 4.81889], [62, 4.84385], [63, 4.87584], [64, 4.90883], [65, 5.07484], [66, 5.11499], [67, 5.1489], [68, 5.18187], [69, 5.19089], [70, 5.27686], [71, 5.28684], [72, 5.34092], [73, 5.43386], [74, 5.52996], [75, 5.55192], [76, 5.56587], [77, 5.6009], [78, 5.62188], [79, 5.64987], [80, 5.67089], [81, 5.68985], [82, 5.72089], [68, 3.39246], [69, 3.43289], [70, 3.46561], [71, 4.05571], [72, 4.09029], [73, 4.11377], [74, 4.15975], [75, 4.17874], [76, 4.22031], [77, 4.24881], [78, 4.27482], [79, 4.33583], [80, 4.36586], [81, 4.39186], [82, 4.42036], [83, 4.44985], [84, 4.47986], [85, 4.52984], [86, 4.5509], [87, 4.57089], [88, 4.60187], [89, 4.62288], [90, 4.63886], None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, [69, 3.53651], [70, 3.78986], [71, 3.83515], [72, 3.8796], [73, 3.91992], [74, 4.05565], [75, 4.12268], [76, 4.19072], [77, 4.27873], [78, 4.45877], [79, 4.52177], [80, 4.59079], [81, 4.63925], [82, 4.75195], [83, 4.8058], [84, 4.86025], [85, 4.89475], [86, 4.91879], [87, 4.97276], [88, 5.02024], [89, 5.05973], [90, 5.09043], [91, 5.14977], [92, 5.20874], [93, 5.21575], [94, 5.26677], [95, 5.30873], [96, 5.31175], [97, 5.33181], [98, 5.38777], [99, 5.46875], [70, 4.03918], [71, 4.49551], [72, 4.99451], [73, 5.30148], [74, 5.37246], [75, 5.49852], [76, 5.57862], [77, 5.67951], [78, 5.75751], [79, 5.81891], [80, 5.91166], [81, 5.98858], [82, 6.09463], [83, 6.22057], [84, 6.28655], [85, 6.36871], [86, 6.39894], [87, 6.41564], [88, 6.50395], [89, 6.62569], [90, 6.7292], [91, 6.84392], [92, 7.19863], [93, 7.2249], [94, 7.27384], [95, 7.30568], [96, 7.37877], [97, 7.43873], [98, 7.48524], [99, 7.51757], [100, 7.55831], [101, 7.59895], [102, 7.6394], [103, 7.67981], [104, 7.72377], [105, 8.11386], [106, 8.17405], [107, 8.30526], [108, 8.35359], [109, 8.37577], [110, 8.39888], [42, 4.45843], [43, 4.49743], [44, 4.65776], [45, 4.68669], [46, 4.7196], [47, 4.74752], [48, 4.7565], [49, 4.83941], [50, 4.85292], [51, 4.89444], [52, 4.9794], [53, 5.06357], [54, 5.08152], [55, 5.09449], [56, 5.12045], [57, 5.14142], [58, 5.16442], [59, 5.18842], [60, 5.21742], [61, 5.2504], [62, 5.2814], [63, 5.31351], [64, 5.34645], [65, 5.91151], [66, 5.94952], [67, 5.97049], [68, 6.03351], [69, 6.06553], [70, 6.10149], [71, 6.13748], [72, 6.17047], [73, 6.20767], [74, 6.25407], [75, 6.2878], [76, 6.31758], [77, 6.34476], [78, 6.3752], [79, 6.40793], [80, 6.42808], [81, 6.44779], [82, 6.47765], [91, 4.66031], [92, 4.67527], None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, [93, 4.70619], [94, 4.94386], [95, 4.99784], [96, 5.03882], [97, 5.07683], [98, 5.16091], [99, 5.22485], [100, 5.29683], [101, 5.38386], [102, 5.52996], [103, 5.58885], [83, 4.90015], [84, 4.9582], [85, 5.07314], [86, 5.13532], [87, 5.18423], [88, 5.21519], [89, 5.23317], [90, 5.27817], [91, 5.31016], [92, 5.35015], [93, 5.39521], [94, 5.49818], [95, 5.56326], [96, 5.56924], [97, 5.61519], [98, 5.6572], [99, 5.66119], [100, 5.67818], [101, 5.70117], [102, 5.77861], [103, 5.83546], [104, 6.31872], [105, 6.86342], [106, 7.1441], [107, 7.21824], [108, 7.3383], [109, 7.39834], [110, 7.48522], [111, 7.56354], [112, 7.64343], [113, 7.74346], [114, 7.82348], [115, 7.91359], [116, 8.02362], [117, 8.14373], [118, 8.22456], [119, 8.25478], [120, 8.27494], [121, 8.36354], [122, 8.46396], [123, 8.56768], [69, 5.46134], [70, 5.82034], [71, 5.85031], [72, 5.89131], [73, 5.9383], [74, 5.97633], [75, 6.01629], [76, 6.0883], [77, 6.13227], [78, 6.17728], [79, 6.2177], [80, 6.25401], [81, 6.29438], [82, 6.32757], [83, 6.78255], [84, 6.82086], [85, 6.96734], [86, 7.01272], [87, 7.03292], [88, 7.07129], [89, 7.1127], [90, 7.16267], [91, 7.34584], [92, 7.38261], [93, 7.41657], [94, 7.4473], [95, 7.45745], [96, 7.54285], [97, 7.56866], [98, 7.61263], [99, 7.6978], [100, 7.77277], [101, 7.79038], [102, 7.80746], [103, 7.83274], [104, 7.85251], [105, 7.87765], [106, 7.90136], [107, 7.94274], [108, 7.98751], [109, 8.03259], [100, 5.5079], [101, 5.5448], [102, 6.13184], [103, 6.16783], [104, 6.19581], [105, 6.23182], [106, 6.25507], [107, 6.28937], [108, 6.32163], [109, 6.35492], [110, 6.38209], [111, 6.4105], [112, 6.43519], [113, 6.46541], [114, 6.50128], [115, 6.52507], [116, 6.57204], [117, 6.59424], [118, 6.6124], [119, 6.63459], [120, 6.65317], [121, 6.66547], None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, [104, 5.62188], [105, 5.88198], [106, 5.94097], [107, 5.98493], [108, 6.03593], [109, 6.14194], [110, 6.2079], [111, 6.27124], [112, 6.33523], [113, 6.49119], [114, 6.57407], [115, 6.64265], [116, 6.6957], [117, 6.82788], [118, 6.88647], [119, 6.96535], [120, 7.00976], [121, 7.02996], [122, 7.07519], [123, 7.11066], [124, 7.15112], [125, 7.17931], [126, 7.24492], [127, 7.30241], [128, 7.30492], [129, 7.34525], [130, 7.39325], [131, 7.4034], [132, 7.43362], [133, 7.46393], [134, 7.54531], [135, 7.61047], [83, 6.16044], [84, 6.68008], [85, 6.95003], [86, 7.03497], [87, 7.14907], [88, 7.22523], [89, 7.31498], [90, 7.38509], [91, 7.45529], [92, 7.55998], [93, 7.63426], [94, 7.73026], [95, 7.82782], [96, 7.88826], [97, 7.96698], [98, 8.0003], [99, 8.01739], [100, 8.10826], [101, 8.2153], [102, 8.32514], [103, 8.4167], [104, 8.74365], [105, 8.7705], [106, 8.80586], [107, 8.8302], [108, 8.85032], [109, 8.87711], [110, 8.91051], [111, 8.9302], [112, 8.95606], [113, 8.98018], [114, 9.00023], [115, 9.03014], [116, 9.06066], [117, 9.34056], [118, 9.36288], [119, 9.47002], [120, 9.49437], [121, 9.51251], [122, 9.52472], [123, 9.55012], [96, 6.53266], [97, 6.73508], [98, 6.76109], [99, 6.79131], [100, 6.84113], [101, 6.8512], [102, 6.95812], [103, 6.97149], [104, 7.02142], [105, 7.11169], [106, 7.20608], [107, 7.23285], [108, 7.25307], [109, 7.29132], [110, 7.32366], [111, 7.34628], [112, 7.36645], [113, 7.38612], [114, 7.42457], [115, 7.45632], [116, 7.50108], [117, 7.53621], [118, 8.14162], [119, 8.18212], [120, 8.20227], [121, 8.24052], [122, 8.26623], [123, 8.30098], [124, 8.33322], [125, 8.36139], [126, 8.38681], [127, 8.41174], [128, 8.43967], [129, 8.4656], [130, 8.49053], [131, 8.51846], [132, 8.55037], [133, 8.57132], [134, 8.59526], [135, 8.6172], [136, 8.63345], [83, 6.49279], None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, [84, 6.54276], [85, 6.79267], [86, 6.84258], [87, 6.89148], [88, 6.94771], [89, 7.04248], [90, 7.11777], [91, 7.19245], [92, 7.25498], [93, 7.4165], [94, 7.50295], [95, 7.58886], [122, 6.73003], [123, 6.87032], [124, 6.9268], [125, 7.00776], [126, 7.03492], [127, 7.05807], [128, 7.10057], [129, 7.14906], [130, 7.20505], [131, 7.25503], [132, 7.32058], [133, 7.375], [134, 7.38316], [135, 7.42353], [136, 7.46405], [137, 7.47007], [138, 7.48443], [139, 7.52002], [140, 7.59381], [141, 7.68027], [142, 8.15085], [143, 8.70325], [144, 8.90751], [145, 9.14817], [146, 9.17046], [147, 9.20025], [148, 9.22084], [149, 9.25008], [150, 9.27507], [151, 9.30185], [152, 9.33501], [153, 9.36285], [154, 9.39121], [155, 9.42004], [156, 9.44178], [157, 9.46399], [158, 9.70568], [159, 9.72576], [160, 9.81003], [161, 9.84033], [162, 9.84994], [136, 7.63629], [137, 7.69037], [138, 7.73026], [139, 7.91003], [140, 7.94527], [141, 7.99023], [142, 8.03751], [143, 8.04758], [144, 8.15888], [145, 8.17103], [146, 8.20927], [147, 8.27533], [148, 8.35533], [149, 8.37247], [150, 8.38778], [151, 8.41371], [152, 8.43665], [153, 8.46058], [154, 8.48252], [155, 8.50247], [156, 8.53538], [157, 8.55932], [158, 8.59423], [159, 8.62415], [160, 9.09806], [161, 9.12056], [162, 9.14036], [163, 9.16529], [164, 9.17855], [165, 9.20088], [166, 9.23094], [167, 9.25027], [168, 9.2715], [169, 9.29024], [170, 9.3099], [171, 9.33247], [172, 9.35277], [173, 9.37295], [174, 9.40333], [175, 9.41344], [176, 9.43367], [96, 7.61261], [97, 7.63283], [98, 7.64952], None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, [99, 7.69289], [100, 7.9428], [101, 8.01279], [102, 8.08257], [103, 8.13767], [104, 8.21777], [105, 8.28476], [106, 8.35132], [107, 8.41216], [108, 8.56575], [110, 8.10741], [111, 8.19255], [112, 8.24743], [113, 8.36105], [114, 8.42787], [115, 8.47773], [116, 8.51164], [117, 8.53358], [118, 8.5749], [119, 8.60765], [120, 8.64572], [121, 8.67399], [122, 8.73268], [123, 8.77918], [124, 8.7827], [125, 8.80748], [126, 8.84288], [127, 8.84797], [128, 8.86258], [129, 8.88292], [130, 8.94121], [131, 8.98265], [132, 9.29324], [133, 9.61287], [134, 9.77269]] 21 | ll= [] 22 | c1 = 0 23 | for x in l: 24 | try: 25 | if x[0] is not None: 26 | ll.append(x) 27 | except: 28 | pass 29 | x = [] 30 | y = [] 31 | for i in ll: 32 | x.append(i[0]) 33 | y.append(i[1]) 34 | print(x) 35 | print(y) 36 | y.sort() 37 | print(y) 38 | """ 39 | -------------------------------------------------------------------------------- /Generating Graph/multiple_thread_analysis_graph.py: -------------------------------------------------------------------------------- 1 | from matplotlib import pyplot as plt 2 | 3 | # 100 Threads 4 | x_100 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072] 5 | y_100 = [0.09719, 0.12229, 0.13236, 0.13739, 0.13739, 0.15749, 0.16249, 0.16249, 0.16249, 0.17253, 0.2034, 0.20761, 0.20861, 0.22734, 0.22734, 0.23542, 0.2486, 0.26073, 0.26172, 0.27741, 0.31225, 0.34214, 0.34724, 0.34724, 0.35225, 0.35225, 0.37244, 0.37497, 0.37756, 0.38713, 0.39214, 0.3972, 0.40726, 0.40726, 0.41226, 0.41735, 0.43752, 0.44253, 0.4476, 0.45211, 0.45211, 0.46778, 0.48808, 0.49816, 0.51225, 0.52233, 0.52857, 0.53968, 0.54219, 0.54219, 0.54878, 0.55991, 0.56452, 0.56452, 0.56911, 0.57211, 0.57717, 0.60236, 0.61243, 0.62957, 0.6623, 0.67244, 0.71032, 0.71283, 0.71773, 0.73043, 0.73849, 0.74251, 0.75171, 0.75271, 0.75271, 0.75271, 0.75753, 0.7606, 0.76764, 0.77271, 0.77884, 0.79097, 0.79247, 0.79247, 0.79247, 0.80107, 0.82275, 0.83285, 0.86972, 0.87288, 0.89278, 0.90186, 0.90293, 1.02322, 1.02774, 1.09816, 1.10774, 1.13523, 1.13776, 1.14789, 1.14789, 1.17409, 1.17776, 1.21405, 1.21405, 1.21833, 1.22284, 1.22745, 1.23757, 1.24258, 1.24663, 1.24766, 1.24766, 1.25469, 1.25774, 1.26477, 1.27234, 1.27487, 1.30426, 1.32554, 1.32757, 1.34297, 1.34857, 1.35263, 1.49807, 1.5017, 1.50773, 1.51291, 1.54271, 1.54271, 1.63356, 1.63356, 1.63863, 1.64266, 1.64872, 1.68343, 1.68681, 1.68774, 1.68972, 1.69164, 1.69268, 1.69368, 1.69467, 1.69679, 1.69863, 1.70062, 1.70344, 1.70811, 1.71157, 1.71257, 1.71257, 1.71257, 1.73194, 1.73294, 1.73294, 1.74001, 1.74758, 1.74919, 1.75317, 1.76358, 1.77291, 1.77794, 1.77794, 1.78795, 1.79098, 1.793, 1.80296, 1.80794, 1.81096, 1.82328, 1.82328, 1.96754, 1.96854, 1.96854, 1.9736, 1.9736, 1.97773, 1.97773, 1.98781, 1.99751, 2.00119, 2.00368, 2.00779, 2.0128, 2.02927, 2.03027, 2.03779, 2.04594, 2.04846, 2.06618, 2.0727, 2.07779, 2.09241, 2.09241, 2.09546, 2.1057, 2.10669, 2.11072, 2.11617, 2.1177, 2.1177, 2.12781, 2.13795, 2.14783, 2.15581, 2.15783, 2.16284, 2.16284, 2.16796, 2.17203, 2.18566, 2.18887, 2.18987, 2.19281, 2.19414, 2.20295, 2.20757, 2.20948, 2.21621, 2.21773, 2.22511, 2.23138, 2.24806, 2.25612, 2.26267, 2.2782, 2.48813, 2.49266, 2.49266, 2.50282, 2.5117, 2.5127, 2.52279, 2.54258, 2.56276, 2.57284, 2.58295, 2.58812, 2.58965, 2.59268, 2.59268, 2.59776, 2.61188, 2.61243, 2.61443, 2.61443, 2.79401, 2.79753, 2.79753, 2.80206, 2.80411, 2.80764, 2.82442, 2.82442, 2.82442, 2.83249, 2.83451, 2.83755, 2.84508, 2.84763, 2.85467, 2.85769, 2.86274, 2.86783, 2.86783, 2.87589, 2.89276, 2.8933, 2.91223, 2.91383, 2.91885, 2.92097, 2.92197, 2.92757, 2.92757, 2.92757, 2.93571, 2.93773, 2.93773, 2.9626, 2.96615, 2.97473, 2.97524, 2.97779, 2.9828, 2.9828, 2.98736, 2.99744, 2.99744, 3.01507, 3.02771, 3.03103, 3.03217, 3.03217, 3.03521, 3.03775, 3.04275, 3.04731, 3.05231, 3.06237, 3.0654, 3.0886, 3.09217, 3.10119, 3.43764, 3.44894, 3.45098, 3.45308, 3.47106, 3.47309, 3.50212, 3.51762, 3.52425, 3.52778, 3.53334, 3.53793, 3.53793, 3.54756, 3.55158, 3.55362, 3.56375, 3.56375, 3.56777, 3.582, 3.5947, 3.60208, 3.60419, 3.60659, 3.735, 3.735, 3.73943, 3.73943, 3.74752, 3.75253, 3.75306, 3.75765, 3.75765, 3.75765, 3.76536, 3.76536, 3.77745, 4.12556, 4.13163, 4.13301, 4.13401, 4.13769, 4.13983, 4.14187, 4.14187, 4.1479, 4.15197, 4.15804, 4.1621, 4.1621, 4.1621, 4.1702, 4.17223, 4.17223, 4.17779, 4.18032, 4.18234, 4.18787, 4.19039, 4.19245, 4.19245, 4.19789, 4.20072, 4.2018, 4.20379, 4.20783, 4.21089, 4.21445, 4.21445, 4.25763, 4.25814, 4.26052, 4.26451, 4.2739, 4.28193, 4.28396, 4.28798, 4.29407, 4.29407, 4.52911, 4.53198, 4.53672, 4.55541, 4.60773, 4.61507, 4.62345, 4.62805, 4.63107, 4.64436, 4.64766, 4.6572, 4.6664, 4.67201, 4.68806, 4.68909, 4.69403, 4.69978, 4.71084, 4.72128, 4.7248, 4.72699, 4.75281, 4.76315, 4.77977, 4.79026, 4.82001, 4.82101, 4.82201, 4.82389, 4.82754, 4.83502, 4.84104, 4.84413, 4.84513, 4.84996, 4.8535, 4.85502, 4.85785, 4.8605, 4.8625, 4.87536, 4.89026, 4.89325, 4.89933, 4.90471, 4.9077, 4.92018, 4.9574, 4.96775, 4.97008, 4.97575, 4.97983, 4.98083, 4.98283, 4.99775, 5.00305, 5.23887, 5.24228, 5.25598, 5.25809, 5.26801, 5.27778, 5.29884, 5.31091, 5.3281, 5.3339, 5.34166, 5.67704, 5.68156, 5.68801, 5.69363, 5.69666, 5.69898, 5.70661, 5.70763, 5.71427, 5.72216, 5.7282, 5.7312, 5.73634, 5.74171, 5.74171, 5.75052, 5.75826, 5.76026, 5.76756, 6.02253, 6.02735, 6.0302, 6.03419, 6.0413, 6.04387, 6.04614, 6.05236, 6.05391, 6.05809, 6.06008, 6.18179, 6.18279, 6.19042, 6.19295, 6.19604, 6.20004, 6.21124, 6.21423, 6.21776, 6.22325, 6.22955, 6.23254, 6.23354, 6.36588, 6.37658, 6.37861, 6.38175, 6.38564, 6.4147, 6.41996, 6.51871, 6.51998, 6.5213, 6.5258, 6.52998, 6.53098, 6.53911, 6.54323, 6.54423, 6.54722, 6.56396, 6.57097, 6.57698, 6.58416, 6.58624, 6.59211, 6.60103, 6.60354, 6.60865, 6.61882, 6.61983, 6.62284, 6.62583, 6.63271, 6.63566, 6.64192, 6.64595, 6.65394, 6.65594, 6.65893, 6.66092, 6.83145, 6.8335, 6.83549, 6.83649, 6.83749, 6.8415, 6.84504, 6.85478, 6.85628, 6.85628, 6.8638, 6.86778, 6.86914, 6.87534, 6.88017, 6.91625, 6.94382, 6.95072, 6.9606, 6.97001, 6.97201, 6.98654, 6.99642, 7.00045, 7.00245, 7.00444, 7.00952, 7.01048, 7.01348, 7.02648, 7.02862, 7.03484, 7.03554, 7.04953, 7.05053, 7.05452, 7.24583, 7.25285, 7.25983, 7.27277, 7.2849, 7.29271, 7.2977, 7.30274, 7.45482, 7.45783, 7.46083, 7.46183, 7.46662, 7.46794, 7.4729, 7.47641, 7.4781, 7.48091, 7.50085, 7.50551, 7.50806, 7.51793, 7.66984, 7.67284, 7.67483, 7.68103, 7.68786, 7.69384, 7.69789, 7.70404, 7.70591, 7.80002, 7.80281, 7.80381, 7.8068, 7.81209, 7.82581, 7.82762, 7.82829, 7.82926, 7.83182, 7.84706, 7.85818, 7.86021, 7.86624, 7.86915, 7.87117, 7.87411, 7.87913, 7.88126, 7.88423, 7.88929, 7.99881, 7.99981, 8.0028, 8.00854, 8.01359, 8.01665, 8.01962, 8.02261, 8.03013, 8.03419, 8.03628, 8.04238, 8.04891, 8.04991, 8.27141, 8.34704, 8.35702, 8.364, 8.365, 8.44479, 8.44829, 8.45528, 8.45779, 8.46229, 8.46229, 8.4724, 8.4734, 8.47539, 8.50789, 8.56567, 8.57078, 8.57377, 8.57876, 8.72992, 8.73183, 8.73583, 8.86374, 8.87719, 8.88824, 8.89322, 8.91025, 8.91718, 8.91918, 9.01501, 9.017, 9.019, 9.01999, 9.01999, 9.02955, 9.03154, 9.12801, 9.12852, 9.13052, 9.13603, 9.13902, 9.145, 9.15748, 9.30483, 9.30898, 9.31204, 9.31303, 9.31702, 9.32214, 9.32912, 9.34161, 9.34708, 9.40073, 9.40173, 9.40971, 9.41071, 9.4124, 9.4179, 9.42188, 9.43286, 9.43385, 9.43684, 9.43996, 9.44195, 9.44295, 9.44794, 9.45492, 9.4639, 9.46589, 9.46689, 9.46789, 9.47088, 9.47188, 9.47786, 9.48285, 9.49282, 9.49482, 9.50381, 9.50681, 9.51939, 9.52118, 9.52318, 9.52517, 9.52717, 9.53315, 9.53814, 9.53921, 9.54213, 9.54412, 9.54512, 9.57561, 9.57761, 9.5826, 9.58659, 9.60158, 9.60258, 9.60557, 9.60656, 9.61055, 9.61454, 9.61654, 9.62252, 9.62709, 9.62809, 9.63308, 9.64305, 9.64505, 9.64804, 9.65802, 9.67249, 9.67419, 9.67716, 9.69381, 9.69544, 9.70168, 9.71005, 9.7141, 9.72321, 9.73019, 9.73418, 9.73817, 9.74515, 9.75612, 9.75863, 9.98275, 9.98375, 9.98692, 9.99757, 9.99908, 10.00471, 10.01241, 10.01594, 10.02773, 10.03172, 10.03829, 10.04782, 10.0563, 10.05988, 10.0729, 10.0777, 10.0787, 10.07969, 10.0867, 10.2959, 10.30388, 10.31186, 10.31285, 10.31485, 10.31585, 10.32099, 10.33794, 10.35004, 10.35303, 10.35773, 10.36569, 10.37041, 10.3724, 10.3734, 10.37839, 10.38138, 10.38488, 10.38488, 10.39536, 10.40534, 10.54049, 10.54178, 10.54477, 10.55303, 10.5697, 10.57976, 10.58594, 10.59003, 10.69775, 10.70074, 10.70274, 10.70274, 10.70374, 10.71072, 10.71271, 10.71371, 10.71821, 10.7212, 10.72519, 10.72918, 10.73816, 10.74115, 10.74414, 10.74813, 10.75611, 10.7581, 10.76209, 10.76309, 10.76708, 10.76908, 10.79103, 10.79345, 10.79526, 10.8036, 10.80759, 10.81558, 10.81662, 10.82207, 10.83205, 10.84518, 10.84663, 10.84896, 10.85594, 10.85945, 10.98478, 10.98977, 10.99077, 10.99176, 10.99276, 10.99575, 10.99675, 11.01172, 11.01969, 11.02568, 11.03565, 11.04961, 11.05659, 11.05813, 11.06065, 11.06163, 11.06163, 11.06761, 11.06761, 11.09012, 11.09311, 11.23763, 11.24661, 11.25318, 11.25617, 11.25826, 11.27239, 11.27538, 11.28237, 11.2845, 11.28735, 11.28886, 11.29164, 11.29317, 11.29317, 11.2945, 11.43445, 11.44243, 11.54146, 11.54146, 11.55144, 11.55296, 11.55495, 11.55695, 11.56692, 11.57091, 11.69102, 11.7155, 11.72248, 11.72448, 11.72847, 11.73545, 11.74442, 11.7564, 11.75939, 11.76338, 11.7673, 11.76979, 11.78019, 11.78319, 11.78717, 11.79256, 11.79815, 11.80513, 11.80712, 11.81033, 11.81233, 11.81732, 11.82438, 11.82687, 11.82887, 11.83086, 11.83186, 11.84087, 11.84486, 11.85088, 11.85188, 11.8709, 11.88843, 11.88895, 11.89492, 12.07694, 12.08006, 12.08107, 12.08406, 12.08506, 12.09005, 12.09204, 12.09703, 12.10102, 12.11, 12.11199, 12.11798, 12.24785, 12.24837, 12.25135, 12.26583, 12.26935, 12.27136, 12.2824, 12.44814, 12.45014, 12.45129, 12.45417, 12.4562, 12.4572, 12.45924, 12.46323, 12.46562, 12.46912, 12.47211, 12.47511, 12.48209, 12.48408, 12.48608, 12.48807, 12.50204, 12.5225, 12.53013, 12.56377, 12.56576, 12.58525, 12.59313, 12.59345, 12.59445, 12.59744, 12.60343, 12.61041, 12.61141, 12.73756, 12.73955, 12.74653, 12.75052, 12.75252, 12.75551, 12.7595, 12.76848, 12.77352, 12.77452, 12.77651, 12.77651, 12.77849, 12.781, 12.78849, 12.79348, 12.80246, 12.85702, 12.96531, 12.9733, 12.98052, 12.98204, 12.98502, 12.99604, 12.99802, 13.00343, 13.07929, 13.0813, 13.0823, 13.08429, 13.08828, 13.08928, 13.09789, 13.09889, 13.0999, 13.10141, 13.1034, 13.10639, 13.12248, 13.14002, 13.14152, 13.14352, 13.14551, 13.15005, 13.15309, 13.16007, 13.1661, 13.17508, 13.22689, 13.23587, 13.24237, 13.26062, 13.2656, 13.2656, 13.28211, 13.28367, 13.28624, 13.2897, 13.2962, 13.30598, 13.31431, 13.3203, 13.32329, 13.32669, 13.33498, 13.34052, 13.34811, 13.3501, 13.35616, 13.3612, 13.36313, 13.36467, 13.37594, 13.37691, 13.37791, 13.37891, 13.4163, 13.41929, 13.42129, 13.42229, 13.43286, 13.47522, 13.48302, 13.48796, 13.49796, 13.51148, 13.5295, 13.5421, 13.54985, 13.55496, 13.55737, 13.55833, 13.56435, 13.58553, 13.58652, 13.60927, 13.61687, 13.62518, 13.64833, 13.65817, 13.67112, 13.6761, 13.79986, 13.89951, 13.97541] 6 | 7 | # Function to plot 8 | plt.plot(x_100,y_100, label= 'THREADs: 100') 9 | 10 | 11 | 12 | x_500 = x_100 13 | y_500 = [0.22452, 0.25815, 0.26322, 0.3353, 0.33796, 0.37927, 0.3984, 0.41842, 0.48041, 0.48948, 0.50786, 0.51796, 0.6618, 0.66821, 0.72231, 0.7233, 0.7233, 0.73034, 0.73236, 0.74243, 0.75046, 0.77056, 0.77258, 0.77258, 0.89388, 0.89388, 0.89388, 0.90095, 0.91281, 0.91281, 0.91281, 0.92298, 0.95426, 0.95426, 0.96332, 0.99292, 1.02594, 1.02694, 1.05598, 1.05895, 1.07604, 1.08466, 1.08849, 1.08948, 1.0908, 1.09179, 1.09483, 1.10521, 1.10819, 1.10819, 1.13745, 1.13745, 1.29918, 1.55079, 1.55287, 1.55287, 1.55287, 1.56192, 1.58536, 1.83595, 1.83595, 1.83595, 1.84527, 1.84727, 1.84727, 1.86189, 1.86643, 1.86643, 1.86643, 1.87848, 1.87848, 1.88652, 1.88652, 1.88652, 1.88652, 1.89348, 1.89448, 1.89547, 1.89647, 1.89647, 1.89871, 1.9055, 1.90756, 1.90756, 1.90756, 1.92668, 1.93136, 1.93236, 1.93236, 1.93236, 1.93487, 1.93692, 1.93692, 1.94418, 1.94817, 1.94817, 1.9552, 1.9572, 1.9582, 2.15229, 2.15328, 2.15328, 2.15328, 2.15733, 2.1583, 2.15972, 2.15972, 2.20129, 2.20129, 2.20129, 2.20129, 2.20846, 2.21145, 2.21145, 2.21145, 2.21145, 2.21145, 2.23138, 2.24164, 2.24468, 2.25073, 2.25298, 2.25298, 2.274, 2.28117, 2.53559, 2.54262, 2.54464, 2.55374, 2.55573, 2.56479, 2.57593, 2.585, 2.585, 2.585, 3.25048, 3.25249, 3.26259, 3.26359, 3.26359, 3.26359, 3.26359, 3.27062, 4.70773, 4.70975, 4.71982, 4.71982, 4.71982, 4.71982, 4.72786, 4.72992, 4.72992, 4.73801, 4.74003, 4.74003, 4.74003, 4.74806, 5.20567, 5.20567, 5.21457, 5.22264, 5.22563, 5.23266, 5.23468, 5.23468, 5.23468, 5.24474, 5.24574, 5.24574, 5.25499, 5.26295, 5.26496, 5.28409, 5.28609, 5.28609, 5.29517, 5.29517, 5.29517, 5.3032, 5.3032, 5.30522, 5.30522, 5.31437, 5.31636, 5.31877, 5.31877, 5.31877, 5.3239, 5.32542, 5.327, 5.33125, 5.33707, 5.36206, 5.36644, 5.38669, 5.39372, 5.80086, 5.80086, 5.80086, 5.81274, 5.83128, 5.84135, 5.84135, 5.85947, 5.86196, 5.86196, 5.86949, 6.36016, 6.37683, 6.38978, 7.12351, 7.19623, 7.2865, 7.40999, 7.40999, 7.42007, 7.46832, 7.47034, 7.47034, 7.48141, 7.51067, 7.52172, 7.59506, 7.59805, 7.60515, 7.62011, 7.64005, 7.65325, 9.02765, 9.52143, 10.2397, 10.29658, 10.29758, 10.31453, 10.31653, 10.3265, 10.33149, 10.33248, 10.33348, 10.34844, 10.3654, 10.36739, 10.37238, 10.37637, 10.40629, 10.41127, 10.42224, 11.48651, 11.51444, 12.56364, 12.56564, 13.87746, 13.94153, 13.94452, 13.94788, 13.95581, 13.9568, 13.96179, 13.96478, 13.97374, 13.98591, 13.99938, 14.00137, 14.0201, 14.025, 14.02771, 14.02874, 14.0306, 14.03158, 14.03357, 14.6104, 14.61339, 14.65395, 14.65695, 14.66393, 14.66843, 14.67431, 14.67832, 14.6863, 14.69627, 14.70325, 14.70525, 14.71223, 14.71923, 14.72521, 14.72779, 14.73078, 14.73377, 14.73548, 14.75194, 14.75831, 14.76826, 14.77125, 14.77868, 14.78033, 14.79455, 14.79555, 14.79754, 14.80053, 14.80352, 14.81055, 14.81883, 14.82048, 14.82148, 15.04877, 15.05278, 15.37189, 15.38087, 15.38286, 15.38585, 16.29817, 16.32615, 16.3444, 16.3474, 16.35051, 16.35238, 16.35483, 16.35483, 16.35939, 16.36138, 16.36437, 16.52986, 16.52786, 16.66164, 16.66317, 16.66472, 16.66567, 16.66772, 16.66967, 16.67139, 16.67588, 16.68087, 16.68505, 16.68563, 16.69925, 16.75145, 16.75372, 16.89604, 16.89758, 16.93533, 17.04126, 17.04723, 17.04923, 17.05527, 17.09823, 17.10404, 17.62081, 17.63763, 17.66607, 17.77884, 17.79023, 17.79622, 17.79821, 17.91541, 17.9184, 17.93935, 17.94162, 17.94562, 17.95717, 17.97168, 17.97467, 17.98771, 17.9907, 17.99378, 17.99777, 18.22015, 18.25028, 18.27031, 18.24438, 18.29032, 18.29131, 18.36925, 18.37821, 18.38652, 18.39389, 18.41051, 18.41541, 18.4174, 18.43091, 18.53781, 20.33401, 18.54031, 18.54486, 18.54686, 18.55094, 18.55194, 18.5547, 18.55767, 18.56315, 18.56415, 18.5886, 18.59132, 18.59132, 18.59287, 18.6316, 18.6326, 18.63359, 18.63559, 18.63758, 18.6402, 18.64157, 18.64366, 18.69638, 18.69937, 17.63464, 18.98663, 18.98863, 18.98962, 18.14781, 18.99122, 19.03753, 19.03908, 19.04511, 19.0481, 19.0491, 19.06488, 19.05807, 19.06789, 19.07471, 19.10965, 19.11442, 20.50663, 19.11552, 19.1179, 19.12178, 19.11865, 19.15143, 19.27813, 20.52758, 19.15262, 21.02072, 19.28161, 21.62572, 19.28312, 19.29482, 19.30223, 19.33162, 19.33517, 19.33517, 19.35487, 19.35587, 19.36282, 19.36482, 19.36681, 21.66717, 19.36974, 19.37472, 19.37866, 19.39898, 19.40047, 19.49208, 19.49208, 19.49371, 19.49568, 19.49568, 19.49769, 19.56572, 19.56572, 19.56671, 19.56671, 22.44616, 19.56771, 19.56787, 19.5688, 19.56973, 19.5747, 19.57657, 19.5776, 19.57855, 19.58067, 19.58154, 19.58353, 22.49859, 19.59052, 19.59151, 19.59228, 22.50159, 19.6016, 19.59761, 19.61075, 19.61552, 22.51854, 22.5196, 19.60951, 19.61919, 19.62301, 18.65062, 19.6307, 19.6321, 19.6321, 19.63354, 19.63482, 19.63881, 19.63981, 19.64081, 19.64181, 19.64503, 19.6461, 19.65, 19.65499, 19.65599, 19.65707, 19.6671, 19.6691, 19.6701, 19.6701, 19.6765, 19.69397, 19.69995, 19.70095, 19.70195, 19.70195, 19.70594, 19.70684, 19.70684, 19.7148, 19.71779, 19.71979, 19.72478, 19.72577, 19.72577, 19.72976, 19.73076, 19.73176, 19.73674, 19.7517, 19.75669, 19.76168, 19.76268, 19.76666, 19.77065, 17.80918, 19.77464, 19.77564, 19.77664, 19.77919, 19.78019, 19.78318, 19.78418, 19.78518, 19.78839, 19.7894, 19.7894, 19.7927, 19.79438, 19.79555, 19.80272, 19.80371, 19.81009, 19.81495, 19.81604, 19.81704, 19.81837, 19.81976, 19.82076, 19.82275, 19.82475, 19.82515, 19.83269, 19.83713, 19.83812, 19.84511, 19.85148, 19.85264, 19.85447, 19.85547, 19.85747, 19.85961, 19.85961, 19.86245, 19.86345, 19.86445, 19.86879, 19.87369, 19.87794, 19.87894, 19.88093, 19.88592, 19.88692, 19.88692, 19.89888, 19.89888, 19.89988, 19.89988, 19.90188, 19.90387, 19.90786, 19.90886, 19.91584, 19.91584, 19.91684, 19.91684, 19.91851, 19.92002, 19.93051, 19.93151, 17.64313, 19.94048, 19.93649, 19.94354, 19.94647, 19.94859, 19.95059, 19.95557, 19.95557, 19.95557, 19.96655, 19.96754, 19.96854, 19.99765, 19.99964, 20.00233, 20.00233, 20.0038, 20.00632, 20.00732, 20.00831, 20.00831, 20.00831, 20.00831, 20.00931, 20.0143, 20.0143, 20.03225, 20.03325, 20.03425, 20.03524, 20.03624, 20.03724, 20.03724, 20.03823, 20.03923, 20.05818, 20.06018, 20.10293, 20.10446, 20.10692, 20.10692, 20.10792, 20.10792, 20.10792, 20.10892, 20.11331, 20.1149, 20.1159, 20.11789, 20.11889, 20.11989, 20.1258, 20.12816, 20.12879, 20.1313, 20.1313, 20.1323, 20.1333, 20.13429, 20.13629, 20.13915, 20.14578, 20.14784, 20.14877, 20.27013, 20.27013, 20.27013, 20.27484, 20.27684, 20.27797, 20.28018, 18.55011, 20.36895, 20.4615, 20.4625, 20.46874, 20.46973, 20.47472, 20.47582, 20.49467, 19.27913, 19.28013, 21.00476, 21.00875, 21.00875, 19.28013, 21.60478, 21.60478, 21.60584, 21.60677, 21.60876, 21.61076, 21.61076, 21.61375, 21.61375, 21.61475, 21.61475, 21.61575, 21.61674, 21.61874, 21.62173, 19.28983, 21.62698, 21.62772, 21.62772, 21.62772, 21.62871, 21.62923, 21.63023, 21.63123, 21.63144, 21.63643, 21.63643, 19.3857, 22.41419, 22.41921, 22.43516, 19.5688, 19.60079, 19.6162, 22.52053, 22.52153, 19.6172, 19.61847, 22.52153, 22.52321, 22.52353, 22.52452, 22.52652, 22.52752, 22.93484, 22.93783, 22.94034, 22.94778, 23.22768, 23.59699, 23.59898, 23.60059, 23.60229, 23.607, 23.60799, 23.60999, 23.61099, 23.61597, 23.61648, 23.62447, 23.63446, 23.65344, 23.65624, 23.83249, 23.8405, 23.8405, 24.01585, 24.01684, 24.01684, 24.01784, 24.12414, 24.12414, 24.12514, 24.12714, 24.12814, 24.13013, 24.13113, 24.13512, 24.1411, 24.15099, 24.15199, 24.22841, 24.28414, 24.28614, 24.28614, 24.28714, 24.28813, 24.28913, 24.29114, 24.29213, 24.29312, 24.29312, 24.29412, 24.29412, 24.2991, 24.30836, 24.30908, 24.30908, 24.31007, 24.31069, 24.31107, 24.31107, 24.31258, 24.31358, 24.31458, 24.73313, 24.73512, 24.73712, 24.73812, 24.74212, 24.7451, 24.7451, 24.74909, 24.75009, 24.75108, 24.98045, 24.98145, 24.98344, 24.98444, 24.98544, 24.98644, 24.98743, 25.01143, 25.01587, 25.25298, 25.25797, 25.29698, 25.46807, 25.47506, 25.48104, 25.49002, 25.49101, 25.50507, 25.50706, 25.50806, 25.50906, 25.51205, 25.51305, 25.51504, 25.51504, 25.51903, 25.52003, 25.52402, 25.54396, 25.57306, 26.95402, 26.96, 26.96107, 26.96107, 26.96399, 26.9681, 26.97109, 26.98205, 27.01222, 27.01222, 27.01323, 27.01386, 27.01529, 27.01723, 27.01823, 27.02421, 27.03518, 27.03717, 27.0455, 27.0455, 27.0465, 27.0485, 27.05001, 27.051, 27.05652, 27.05949, 27.06548, 27.06668, 27.07836, 27.07935, 27.18755, 27.0953, 27.32801, 27.32901, 27.33, 27.33818, 27.84109, 27.84208, 27.84509, 27.84509, 27.84653, 27.84738, 27.85004, 27.8521, 27.82861, 27.85516, 27.856, 27.86203, 27.86302, 27.86402, 27.88227, 27.89817, 27.89973, 27.90073, 27.90173, 27.90305, 27.90373, 27.90387, 27.90499, 27.90871, 27.9149, 27.91689, 27.99831, 28.00164, 28.00164, 28.03518, 28.03703, 28.04195, 28.04295, 28.04295, 28.04295, 28.06761, 28.06907, 28.07089, 28.07129, 28.07329, 28.12433, 28.12677, 28.13638, 28.13738, 28.1385, 28.14051, 28.14173, 28.14656, 28.14756, 28.14961, 28.14961, 28.15161, 28.15161, 28.16006, 28.16006, 28.16107, 28.16206, 28.19717, 28.19864, 28.2022, 28.21936, 28.23052, 28.23154, 28.24862, 28.25087, 28.25207, 28.25307, 28.25307, 28.2571, 28.25851, 28.264, 28.26987, 28.27046, 28.27144, 28.2748, 28.27818, 28.295, 28.29599, 28.30212, 28.30611, 28.30962, 28.31085, 28.31141, 28.31341, 28.32065, 28.32582, 28.33261, 28.33261, 28.33364, 28.33466, 28.33567, 28.39966, 28.40066, 28.40066, 28.40166, 28.40166, 28.40317, 28.40716, 28.40816, 28.41408, 28.42306, 28.42406, 28.43014, 28.43217, 28.44556, 28.44556, 28.44652, 28.44774, 28.44774, 28.44774, 28.44852, 28.45051, 28.45351, 28.4545, 28.4555, 28.45684, 28.46348, 28.46559, 28.46958, 28.47158, 28.47357, 28.47889, 28.47989, 28.48108, 28.48294, 28.48539, 28.48639, 28.48838, 28.49038, 28.49187, 28.49237, 28.49436, 28.49436, 28.49491, 28.50289, 28.50489, 28.50589, 28.50589, 28.50589, 28.50688, 28.50888, 28.50988, 28.50988, 28.51287, 28.52085, 28.54083, 28.55178, 28.56901, 28.57001, 28.57898, 28.58197, 28.58197, 28.58297, 28.58517, 28.58596, 28.58699, 28.58904, 28.58995, 28.59095, 28.59909, 28.60206, 28.60306, 28.60432, 28.60734, 28.61135, 28.6284, 28.6314, 28.63239, 28.6334, 28.6334, 28.63439, 28.63638, 28.63953, 28.64037, 28.65059, 28.65159, 28.65259, 28.65458, 28.6617, 28.66265, 28.66928, 28.66981, 28.68792, 28.68892, 28.75009, 28.80371, 28.85199, 28.85299, 28.86192, 28.86591, 28.89116, 28.89415, 28.89515, 29.03876, 29.10872, 29.1176, 29.17409, 29.17908, 29.19139, 29.19744, 29.20257, 29.2085, 29.26491, 29.35349, 29.37266, 29.38016, 29.48883, 29.63719] 14 | plt.plot(x_500, y_500, label= 'THREADs: 500') 15 | 16 | 17 | plt.xlabel('Image Count') 18 | plt.ylabel('Time (seconds)') 19 | 20 | plt.title('Threads Number Analysis') 21 | plt.legend(loc='best') 22 | plt.show() 23 | 24 | 25 | 26 | """ 27 | l = [[1, 0.09719], [2, 0.12229], [3, 0.13236], [4, 0.13739], [5, 0.13739], [6, 0.15749], [7, 0.16249], [8, 0.16249], [9, 0.16249], [10, 0.17253], [11, 0.2034], [12, 0.20761], [13, 0.20861], [14, 0.22734], [15, 0.22734], [16, 0.23542], [17, 0.2486], [18, 0.26073], [19, 0.26172], [20, 0.27741], [21, 0.31225], [22, 0.34214], [23, 0.34724], [24, 0.34724], [25, 0.35225], [26, 0.35225], [27, 0.37244], [28, 0.37497], [29, 0.37756], [30, 0.38713], [31, 0.39214], [32, 0.3972], [33, 0.40726], [34, 0.40726], [35, 0.41226], [36, 0.41735], [37, 0.43752], [38, 0.44253], [39, 0.4476], [40, 0.45211], [41, 0.45211], [42, 0.46778], [43, 0.48808], [44, 0.49816], [45, 0.51225], [46, 0.52233], [47, 0.52857], [48, 0.53968], [49, 0.54219], [50, 0.54219], [51, 0.54878], [52, 0.55991], [53, 0.56452], [54, 0.56452], [55, 0.56911], [56, 0.57211], [57, 0.57717], [58, 0.60236], [59, 0.61243], [60, 0.62957], [61, 0.6623], [62, 0.67244], [63, 0.71032], [64, 0.71283], [65, 0.71773], [66, 0.73043], [67, 0.73849], [68, 0.74251], [69, 0.75171], [70, 0.75271], [71, 0.75271], [72, 0.75271], [73, 0.75753], [74, 0.7606], [75, 0.76764], [76, 0.77271], [77, 0.77884], [78, 0.79097], [79, 0.79247], [80, 0.79247], [81, 0.79247], [82, 0.80107], [83, 0.82275], [84, 0.83285], [85, 0.86972], [86, 0.87288], [87, 0.89278], [88, 0.90186], [89, 0.90293], [90, 1.02322], [91, 1.02774], [92, 1.09816], [93, 1.10774], [94, 1.13523], [95, 1.13776], [96, 1.14789], [97, 1.14789], [98, 1.17409], [99, 1.17776], [100, 1.21405], [101, 1.21405], [102, 1.21833], [103, 1.22284], [104, 1.22745], [105, 1.23757], [106, 1.24258], [107, 1.24663], [108, 1.24766], [109, 1.24766], [110, 1.25469], [111, 1.25774], [112, 1.26477], [113, 1.27234], [114, 1.27487], [115, 1.30426], [116, 1.32554], [117, 1.32757], [118, 1.34297], [119, 1.34857], [120, 1.35263], [121, 1.49807], [122, 1.5017], [123, 1.50773], [124, 1.51291], [125, 1.54271], [126, 1.54271], [127, 1.63356], [128, 1.63356], [129, 1.63863], [130, 1.64266], [131, 1.64872], [132, 1.68343], [133, 1.68681], [134, 1.68774], [135, 1.68972], [136, 1.69164], [137, 1.69268], [138, 1.69368], [139, 1.69467], [140, 1.69679], [141, 1.69863], [142, 1.70062], [143, 1.70344], [144, 1.70811], [145, 1.71157], [146, 1.71257], [147, 1.71257], [148, 1.71257], [149, 1.73194], [150, 1.73294], [151, 1.73294], [152, 1.74001], [153, 1.74758], [154, 1.74919], [155, 1.75317], [156, 1.76358], [157, 1.77291], [158, 1.77794], [159, 1.77794], [160, 1.78795], [161, 1.79098], [162, 1.793], [163, 1.80296], [164, 1.80794], [165, 1.81096], [166, 1.82328], [167, 1.82328], [168, 1.96754], [169, 1.96854], [170, 1.96854], [171, 1.9736], [172, 1.9736], [173, 1.97773], [174, 1.97773], [175, 1.98781], [176, 1.99751], [177, 2.00119], [178, 2.00368], [179, 2.00779], [180, 2.0128], [181, 2.02927], [182, 2.03027], [183, 2.03779], [184, 2.04594], [185, 2.04846], [186, 2.06618], [187, 2.0727], [188, 2.07779], [189, 2.09241], [190, 2.09241], [191, 2.09546], [192, 2.1057], [193, 2.10669], [194, 2.11072], [195, 2.11617], [196, 2.1177], [197, 2.1177], [198, 2.12781], [199, 2.13795], [200, 2.14783], [201, 2.15581], [202, 2.15783], [203, 2.16284], [204, 2.16284], [205, 2.16796], [206, 2.17203], [207, 2.18566], [208, 2.18887], [209, 2.18987], [210, 2.19281], [211, 2.19414], [212, 2.20295], [213, 2.20757], [214, 2.20948], [215, 2.21621], [216, 2.21773], [217, 2.22511], [218, 2.23138], [219, 2.24806], [220, 2.25612], [221, 2.26267], [222, 2.2782], [223, 2.48813], [224, 2.49266], [225, 2.49266], [226, 2.50282], [227, 2.5117], [228, 2.5127], [229, 2.52279], [230, 2.54258], [231, 2.56276], [232, 2.57284], [233, 2.58295], [234, 2.58812], [235, 2.58965], [236, 2.59268], [237, 2.59268], [238, 2.59776], [239, 2.61188], [240, 2.61243], [241, 2.61443], [242, 2.61443], [243, 2.79401], [244, 2.79753], [245, 2.79753], [246, 2.80206], [247, 2.80411], [248, 2.80764], [249, 2.82442], [250, 2.82442], [251, 2.82442], [252, 2.83249], [253, 2.83451], [254, 2.83755], [255, 2.84508], [256, 2.84763], [257, 2.85467], [258, 2.85769], [259, 2.86274], [260, 2.86783], [261, 2.86783], [262, 2.87589], [263, 2.89276], [264, 2.8933], [265, 2.91223], [266, 2.91383], [267, 2.91885], [268, 2.92097], [269, 2.92197], [270, 2.92757], [271, 2.92757], [272, 2.92757], [273, 2.93571], [274, 2.93773], [275, 2.93773], [276, 2.9626], [277, 2.96615], [278, 2.97473], [279, 2.97524], [280, 2.97779], [281, 2.9828], [282, 2.9828], [283, 2.98736], [284, 2.99744], [285, 2.99744], [286, 3.01507], [287, 3.02771], [288, 3.03103], [289, 3.03217], [290, 3.03217], [291, 3.03521], [292, 3.03775], [293, 3.04275], [294, 3.04731], [295, 3.05231], [296, 3.06237], [297, 3.0654], [298, 3.0886], [299, 3.09217], [300, 3.10119], [301, 3.43764], [302, 3.44894], [303, 3.45098], [304, 3.45308], [305, 3.47106], [306, 3.47309], [307, 3.50212], [308, 3.51762], [309, 3.52425], [310, 3.52778], [311, 3.53334], [312, 3.53793], [313, 3.53793], [314, 3.54756], [315, 3.55158], [316, 3.55362], [317, 3.56375], [318, 3.56375], [319, 3.56777], [320, 3.582], [321, 3.5947], [322, 3.60208], [323, 3.60419], [324, 3.60659], [325, 3.735], [326, 3.735], [327, 3.73943], [328, 3.73943], [329, 3.74752], [330, 3.75253], [331, 3.75306], [332, 3.75765], [333, 3.75765], [334, 3.75765], [335, 3.76536], [336, 3.76536], [337, 3.77745], [338, 4.12556], [339, 4.13163], [340, 4.13301], [341, 4.13401], [342, 4.13769], [343, 4.13983], [344, 4.14187], [345, 4.14187], [346, 4.1479], [347, 4.15197], [348, 4.15804], [349, 4.1621], [350, 4.1621], [351, 4.1621], [352, 4.1702], [353, 4.17223], [354, 4.17223], [355, 4.17779], [356, 4.18032], [357, 4.18234], [358, 4.18787], [359, 4.19039], [360, 4.19245], [361, 4.19245], [362, 4.19789], [363, 4.20072], [364, 4.2018], [365, 4.20379], [366, 4.20783], [367, 4.21089], [368, 4.21445], [369, 4.21445], [370, 4.25763], [371, 4.25814], [372, 4.26052], [373, 4.26451], [374, 4.2739], [375, 4.28193], [376, 4.28396], [377, 4.28798], [378, 4.29407], [379, 4.29407], [380, 4.52911], [381, 4.53198], [382, 4.53672], [383, 4.55541], [384, 4.60773], [385, 4.61507], [386, 4.62345], [387, 4.62805], [388, 4.63107], [389, 4.64436], [390, 4.64766], [391, 4.6572], [392, 4.6664], [393, 4.67201], [394, 4.68806], [395, 4.68909], [396, 4.69403], [397, 4.69978], [398, 4.71084], [399, 4.72128], [400, 4.7248], [401, 4.72699], [402, 4.75281], [403, 4.76315], [404, 4.77977], [405, 4.79026], [406, 4.82001], [407, 4.82101], [408, 4.82201], [409, 4.82389], [410, 4.82754], [411, 4.83502], [412, 4.84104], [413, 4.84413], [414, 4.84513], [415, 4.84996], [416, 4.8535], [417, 4.85502], [418, 4.85785], [419, 4.8605], [420, 4.8625], [421, 4.87536], [422, 4.89026], [423, 4.89325], [424, 4.89933], [425, 4.90471], [426, 4.9077], [427, 4.92018], [428, 4.9574], [429, 4.96775], [430, 4.97008], [431, 4.97575], [432, 4.97983], [433, 4.98083], [434, 4.98283], [435, 4.99775], [436, 5.00305], [437, 5.23887], [438, 5.24228], [439, 5.25598], [440, 5.25809], [441, 5.26801], [442, 5.27778], [443, 5.29884], [444, 5.31091], [445, 5.3281], [446, 5.3339], [447, 5.34166], [448, 5.67704], [449, 5.68156], [450, 5.68801], [451, 5.69363], [452, 5.69666], [453, 5.69898], [454, 5.70661], [455, 5.70763], [456, 5.71427], [457, 5.72216], [458, 5.7282], [459, 5.7312], [460, 5.73634], [461, 5.74171], [462, 5.74171], [463, 5.75052], [464, 5.75826], [465, 5.76026], [466, 5.76756], [467, 6.02253], [468, 6.02735], [469, 6.0302], [470, 6.03419], [471, 6.0413], [472, 6.04387], [473, 6.04614], [474, 6.05236], [475, 6.05391], [476, 6.05809], [477, 6.06008], [478, 6.18179], [479, 6.18279], [480, 6.19042], [481, 6.19295], [482, 6.19604], [483, 6.20004], [484, 6.21124], [485, 6.21423], [486, 6.21776], [487, 6.22325], [488, 6.22955], [489, 6.23254], [490, 6.23354], [491, 6.36588], [492, 6.37658], [493, 6.37861], [494, 6.38175], [495, 6.38564], [496, 6.4147], [497, 6.41996], [498, 6.51871], [499, 6.51998], [500, 6.5213], [501, 6.5258], [502, 6.52998], [503, 6.53098], [504, 6.53911], [505, 6.54323], [506, 6.54423], [507, 6.54722], [508, 6.56396], [509, 6.57097], [510, 6.57698], [511, 6.58416], [512, 6.58624], [513, 6.59211], [514, 6.60103], [515, 6.60354], [516, 6.60865], [517, 6.61882], [518, 6.61983], [519, 6.62284], [520, 6.62583], [521, 6.63271], [522, 6.63566], [523, 6.64192], [524, 6.64595], [525, 6.65394], [526, 6.65594], [527, 6.65893], [528, 6.66092], [529, 6.83145], [530, 6.8335], [531, 6.83549], [532, 6.83649], [533, 6.83749], [534, 6.8415], [535, 6.84504], [536, 6.85478], [537, 6.85628], [538, 6.85628], [539, 6.8638], [540, 6.86778], [541, 6.86914], [542, 6.87534], [543, 6.88017], [544, 6.91625], [545, 6.94382], [546, 6.95072], [547, 6.9606], [548, 6.97001], [549, 6.97201], [550, 6.98654], [551, 6.99642], [552, 7.00045], [553, 7.00245], [554, 7.00444], [555, 7.00952], [556, 7.01048], [557, 7.01348], [558, 7.02648], [559, 7.02862], [560, 7.03484], [561, 7.03554], [562, 7.04953], [563, 7.05053], [564, 7.05452], [565, 7.24583], [566, 7.25285], [567, 7.25983], [568, 7.27277], [569, 7.2849], [570, 7.29271], [571, 7.2977], [572, 7.30274], [573, 7.45482], [574, 7.45783], [575, 7.46083], [576, 7.46183], [577, 7.46662], [578, 7.46794], [579, 7.4729], [580, 7.47641], [581, 7.4781], [582, 7.48091], [583, 7.50085], [584, 7.50551], [585, 7.50806], [586, 7.51793], [587, 7.66984], [588, 7.67284], [589, 7.67483], [590, 7.68103], [591, 7.68786], [592, 7.69384], [593, 7.69789], [594, 7.70404], [595, 7.70591], [596, 7.80002], [597, 7.80281], [598, 7.80381], [599, 7.8068], [600, 7.81209], [601, 7.82581], [602, 7.82762], [603, 7.82829], [604, 7.82926], [605, 7.83182], [606, 7.84706], [607, 7.85818], [608, 7.86021], [609, 7.86624], [610, 7.86915], [611, 7.87117], [612, 7.87411], [613, 7.87913], [614, 7.88126], [615, 7.88423], [616, 7.88929], [617, 7.99881], [618, 7.99981], [619, 8.0028], [620, 8.00854], [621, 8.01359], [622, 8.01665], [623, 8.01962], [624, 8.02261], [625, 8.03013], [626, 8.03419], [627, 8.03628], [628, 8.04238], [629, 8.04891], [630, 8.04991], [631, 8.27141], [632, 8.34704], [633, 8.35702], [634, 8.364], [635, 8.365], [636, 8.44479], [637, 8.44829], [638, 8.45528], [639, 8.45779], [640, 8.46229], [641, 8.46229], [642, 8.4724], [643, 8.4734], [644, 8.47539], [645, 8.50789], [646, 8.56567], [647, 8.57078], [648, 8.57377], [649, 8.57876], [650, 8.72992], [651, 8.73183], [652, 8.73583], [653, 8.86374], [654, 8.87719], [655, 8.88824], [656, 8.89322], [657, 8.91025], [658, 8.91718], [659, 8.91918], [660, 9.01501], [661, 9.017], [662, 9.019], [663, 9.01999], [664, 9.01999], [665, 9.02955], [666, 9.03154], [667, 9.12801], [668, 9.12852], [669, 9.13052], [670, 9.13603], [671, 9.13902], [672, 9.145], [673, 9.15748], [674, 9.30483], [675, 9.30898], [676, 9.31204], [677, 9.31303], [678, 9.31702], [679, 9.32214], [680, 9.32912], [681, 9.34161], [682, 9.34708], [683, 9.40073], [684, 9.40173], [685, 9.40971], [686, 9.41071], [687, 9.4124], [688, 9.4179], [689, 9.42188], [690, 9.43286], [691, 9.43385], [692, 9.43684], [693, 9.43996], [694, 9.44195], [695, 9.44295], [696, 9.44794], [697, 9.45492], [698, 9.4639], [699, 9.46589], [700, 9.46689], [701, 9.46789], [702, 9.47088], [703, 9.47188], [704, 9.47786], [705, 9.48285], [706, 9.49282], [707, 9.49482], [708, 9.50381], [709, 9.50681], [710, 9.51939], [711, 9.52118], [712, 9.52318], [713, 9.52517], [714, 9.52717], [715, 9.53315], [716, 9.53814], [717, 9.53921], [718, 9.54213], [719, 9.54412], [720, 9.54512], [721, 9.57561], [722, 9.57761], [723, 9.5826], [724, 9.58659], [725, 9.60158], [726, 9.60258], [727, 9.60557], [728, 9.60656], [729, 9.61055], [730, 9.61454], [731, 9.61654], [732, 9.62252], [733, 9.62709], [734, 9.62809], [735, 9.63308], [736, 9.64305], [737, 9.64505], [738, 9.64804], [739, 9.65802], [740, 9.67249], [741, 9.67419], [742, 9.67716], [743, 9.69381], [744, 9.69544], [745, 9.70168], [746, 9.71005], [747, 9.7141], [748, 9.72321], [749, 9.73019], [750, 9.73418], [751, 9.73817], [752, 9.74515], [753, 9.75612], [754, 9.75863], [755, 9.98275], [756, 9.98375], [757, 9.98692], [758, 9.99757], [759, 9.99908], [760, 10.00471], [761, 10.01241], [762, 10.01594], [763, 10.02773], [764, 10.03172], [765, 10.03829], [766, 10.04782], [767, 10.0563], [768, 10.05988], [769, 10.0729], [770, 10.0777], [771, 10.0787], [772, 10.07969], [773, 10.0867], [774, 10.2959], [775, 10.30388], [776, 10.31186], [777, 10.31285], [778, 10.31485], [779, 10.31585], [780, 10.32099], [781, 10.33794], [782, 10.35004], [783, 10.35303], [784, 10.35773], [785, 10.36569], [786, 10.37041], [787, 10.3724], [788, 10.3734], [789, 10.37839], [790, 10.38138], [791, 10.38488], [792, 10.38488], [793, 10.39536], [794, 10.40534], [795, 10.54049], [796, 10.54178], [797, 10.54477], [798, 10.55303], [799, 10.5697], [800, 10.57976], [801, 10.58594], [802, 10.59003], [803, 10.69775], [804, 10.70074], [805, 10.70274], [806, 10.70274], [807, 10.70374], [808, 10.71072], [809, 10.71271], [810, 10.71371], [811, 10.71821], [812, 10.7212], [813, 10.72519], [814, 10.72918], [815, 10.73816], [816, 10.74115], [817, 10.74414], [818, 10.74813], [819, 10.75611], [820, 10.7581], [821, 10.76209], [822, 10.76309], [823, 10.76708], [824, 10.76908], [825, 10.79103], [826, 10.79345], [827, 10.79526], [828, 10.8036], [829, 10.80759], [830, 10.81558], [831, 10.81662], [832, 10.82207], [833, 10.83205], [834, 10.84518], [835, 10.84663], [836, 10.84896], [837, 10.85594], [838, 10.85945], [839, 10.98478], [840, 10.98977], [841, 10.99077], [842, 10.99176], [843, 10.99276], [844, 10.99575], [845, 10.99675], [846, 11.01172], [847, 11.01969], [848, 11.02568], [849, 11.03565], [850, 11.04961], [851, 11.05659], [852, 11.05813], [853, 11.06065], [854, 11.06163], [855, 11.06163], [856, 11.06761], [857, 11.06761], [858, 11.09012], [859, 11.09311], [860, 11.23763], [861, 11.24661], [862, 11.25318], [863, 11.25617], [864, 11.25826], [865, 11.27239], [866, 11.27538], [867, 11.28237], [868, 11.2845], [869, 11.28735], [870, 11.28886], [871, 11.29164], [872, 11.29317], [873, 11.29317], [874, 11.2945], [875, 11.43445], [876, 11.44243], [877, 11.54146], [878, 11.54146], [879, 11.55144], [880, 11.55296], [881, 11.55495], [882, 11.55695], [883, 11.56692], [884, 11.57091], [885, 11.69102], [886, 11.7155], [887, 11.72248], [888, 11.72448], [889, 11.72847], [890, 11.73545], [891, 11.74442], [892, 11.7564], [893, 11.75939], [894, 11.76338], [895, 11.7673], [896, 11.76979], [897, 11.78019], [898, 11.78319], [899, 11.78717], [900, 11.79256], [901, 11.79815], [902, 11.80513], [903, 11.80712], [904, 11.81033], [905, 11.81233], [906, 11.81732], [907, 11.82438], [908, 11.82687], [909, 11.82887], [910, 11.83086], [911, 11.83186], [912, 11.84087], [913, 11.84486], [914, 11.85088], [915, 11.85188], [916, 11.8709], [917, 11.88843], [918, 11.88895], [919, 11.89492], [920, 12.07694], [921, 12.08006], [922, 12.08107], [923, 12.08406], [924, 12.08506], [925, 12.09005], [926, 12.09204], [927, 12.09703], [928, 12.10102], [929, 12.11], [930, 12.11199], [931, 12.11798], [932, 12.24785], [933, 12.24837], [934, 12.25135], [935, 12.26583], [936, 12.26935], [937, 12.27136], [938, 12.2824], [939, 12.44814], [940, 12.45014], [941, 12.45129], [942, 12.45417], [943, 12.4562], [944, 12.4572], [945, 12.45924], [946, 12.46323], [947, 12.46562], [948, 12.46912], [949, 12.47211], [950, 12.47511], [951, 12.48209], [952, 12.48408], [953, 12.48608], [954, 12.48807], [955, 12.50204], [956, 12.5225], [957, 12.53013], [958, 12.56377], [959, 12.56576], [960, 12.58525], [961, 12.59313], [962, 12.59345], [963, 12.59445], [964, 12.59744], [965, 12.60343], [966, 12.61041], [967, 12.61141], [968, 12.73756], [969, 12.73955], [970, 12.74653], [971, 12.75052], [972, 12.75252], [973, 12.75551], [974, 12.7595], [975, 12.76848], [976, 12.77352], [977, 12.77452], [978, 12.77651], [979, 12.77651], [980, 12.77849], [981, 12.781], [982, 12.78849], [983, 12.79348], [984, 12.80246], [985, 12.85702], [986, 12.96531], [987, 12.9733], [988, 12.98052], [989, 12.98204], [990, 12.98502], [991, 12.99604], [992, 12.99802], [993, 13.00343], [994, 13.07929], [995, 13.0813], [996, 13.0823], [997, 13.08429], [998, 13.08828], [999, 13.08928], [1000, 13.09789], [1001, 13.09889], [1002, 13.0999], [1003, 13.10141], [1004, 13.1034], [1005, 13.10639], [1006, 13.12248], [1007, 13.14002], [1008, 13.14152], [1009, 13.14352], [1010, 13.14551], [1011, 13.15005], [1012, 13.15309], [1013, 13.16007], [1014, 13.1661], [1015, 13.17508], [1016, 13.22689], [1017, 13.23587], [1018, 13.24237], [1019, 13.26062], [1020, 13.2656], [1021, 13.2656], [1022, 13.28211], [1023, 13.28367], [1024, 13.28624], [1025, 13.2897], [1026, 13.2962], [1027, 13.30598], [1028, 13.31431], [1029, 13.3203], [1030, 13.32329], [1031, 13.32669], [1032, 13.33498], [1033, 13.34052], [1034, 13.34811], [1035, 13.3501], [1036, 13.35616], [1037, 13.3612], [1038, 13.36313], [1039, 13.36467], [1040, 13.37594], [1041, 13.37691], [1042, 13.37791], [1043, 13.37891], [1044, 13.4163], [1045, 13.41929], [1046, 13.42129], [1047, 13.42229], [1048, 13.43286], [1049, 13.47522], [1050, 13.48302], [1051, 13.48796], [1052, 13.49796], [1053, 13.51148], [1054, 13.5295], [1055, 13.5421], [1056, 13.54985], [1057, 13.55496], [1058, 13.55737], [1059, 13.55833], [1060, 13.56435], [1061, 13.58553], [1062, 13.58652], [1063, 13.60927], [1064, 13.61687], [1065, 13.62518], [1066, 13.64833], [1067, 13.65817], [1068, 13.67112], [1069, 13.6761], [1070, 13.79986], [1071, 13.89951], [1072, 13.97541]] 28 | ll= [] 29 | c1 = 0 30 | for x in l: 31 | try: 32 | if x[0] is not None: 33 | ll.append(x) 34 | except: 35 | pass 36 | x = [] 37 | y = [] 38 | for i in ll: 39 | x.append(i[0]) 40 | y.append(i[1]) 41 | 42 | # x is imae count 43 | # y is time stamp 44 | print(x) 45 | print(y) 46 | z = list(y) 47 | y.sort() 48 | print(y) 49 | print(z==y) 50 | """ 51 | -------------------------------------------------------------------------------- /Generating Graph/multiple_thread_graph.py: -------------------------------------------------------------------------------- 1 | from matplotlib import pyplot as plt 2 | 3 | 4 | x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072] 5 | y = [0.09719, 0.12229, 0.13236, 0.13739, 0.13739, 0.15749, 0.16249, 0.16249, 0.16249, 0.17253, 0.2034, 0.20761, 0.20861, 0.22734, 0.22734, 0.23542, 0.2486, 0.26073, 0.26172, 0.27741, 0.31225, 0.34214, 0.34724, 0.34724, 0.35225, 0.35225, 0.37244, 0.37497, 0.37756, 0.38713, 0.39214, 0.3972, 0.40726, 0.40726, 0.41226, 0.41735, 0.43752, 0.44253, 0.4476, 0.45211, 0.45211, 0.46778, 0.48808, 0.49816, 0.51225, 0.52233, 0.52857, 0.53968, 0.54219, 0.54219, 0.54878, 0.55991, 0.56452, 0.56452, 0.56911, 0.57211, 0.57717, 0.60236, 0.61243, 0.62957, 0.6623, 0.67244, 0.71032, 0.71283, 0.71773, 0.73043, 0.73849, 0.74251, 0.75171, 0.75271, 0.75271, 0.75271, 0.75753, 0.7606, 0.76764, 0.77271, 0.77884, 0.79097, 0.79247, 0.79247, 0.79247, 0.80107, 0.82275, 0.83285, 0.86972, 0.87288, 0.89278, 0.90186, 0.90293, 1.02322, 1.02774, 1.09816, 1.10774, 1.13523, 1.13776, 1.14789, 1.14789, 1.17409, 1.17776, 1.21405, 1.21405, 1.21833, 1.22284, 1.22745, 1.23757, 1.24258, 1.24663, 1.24766, 1.24766, 1.25469, 1.25774, 1.26477, 1.27234, 1.27487, 1.30426, 1.32554, 1.32757, 1.34297, 1.34857, 1.35263, 1.49807, 1.5017, 1.50773, 1.51291, 1.54271, 1.54271, 1.63356, 1.63356, 1.63863, 1.64266, 1.64872, 1.68343, 1.68681, 1.68774, 1.68972, 1.69164, 1.69268, 1.69368, 1.69467, 1.69679, 1.69863, 1.70062, 1.70344, 1.70811, 1.71157, 1.71257, 1.71257, 1.71257, 1.73194, 1.73294, 1.73294, 1.74001, 1.74758, 1.74919, 1.75317, 1.76358, 1.77291, 1.77794, 1.77794, 1.78795, 1.79098, 1.793, 1.80296, 1.80794, 1.81096, 1.82328, 1.82328, 1.96754, 1.96854, 1.96854, 1.9736, 1.9736, 1.97773, 1.97773, 1.98781, 1.99751, 2.00119, 2.00368, 2.00779, 2.0128, 2.02927, 2.03027, 2.03779, 2.04594, 2.04846, 2.06618, 2.0727, 2.07779, 2.09241, 2.09241, 2.09546, 2.1057, 2.10669, 2.11072, 2.11617, 2.1177, 2.1177, 2.12781, 2.13795, 2.14783, 2.15581, 2.15783, 2.16284, 2.16284, 2.16796, 2.17203, 2.18566, 2.18887, 2.18987, 2.19281, 2.19414, 2.20295, 2.20757, 2.20948, 2.21621, 2.21773, 2.22511, 2.23138, 2.24806, 2.25612, 2.26267, 2.2782, 2.48813, 2.49266, 2.49266, 2.50282, 2.5117, 2.5127, 2.52279, 2.54258, 2.56276, 2.57284, 2.58295, 2.58812, 2.58965, 2.59268, 2.59268, 2.59776, 2.61188, 2.61243, 2.61443, 2.61443, 2.79401, 2.79753, 2.79753, 2.80206, 2.80411, 2.80764, 2.82442, 2.82442, 2.82442, 2.83249, 2.83451, 2.83755, 2.84508, 2.84763, 2.85467, 2.85769, 2.86274, 2.86783, 2.86783, 2.87589, 2.89276, 2.8933, 2.91223, 2.91383, 2.91885, 2.92097, 2.92197, 2.92757, 2.92757, 2.92757, 2.93571, 2.93773, 2.93773, 2.9626, 2.96615, 2.97473, 2.97524, 2.97779, 2.9828, 2.9828, 2.98736, 2.99744, 2.99744, 3.01507, 3.02771, 3.03103, 3.03217, 3.03217, 3.03521, 3.03775, 3.04275, 3.04731, 3.05231, 3.06237, 3.0654, 3.0886, 3.09217, 3.10119, 3.43764, 3.44894, 3.45098, 3.45308, 3.47106, 3.47309, 3.50212, 3.51762, 3.52425, 3.52778, 3.53334, 3.53793, 3.53793, 3.54756, 3.55158, 3.55362, 3.56375, 3.56375, 3.56777, 3.582, 3.5947, 3.60208, 3.60419, 3.60659, 3.735, 3.735, 3.73943, 3.73943, 3.74752, 3.75253, 3.75306, 3.75765, 3.75765, 3.75765, 3.76536, 3.76536, 3.77745, 4.12556, 4.13163, 4.13301, 4.13401, 4.13769, 4.13983, 4.14187, 4.14187, 4.1479, 4.15197, 4.15804, 4.1621, 4.1621, 4.1621, 4.1702, 4.17223, 4.17223, 4.17779, 4.18032, 4.18234, 4.18787, 4.19039, 4.19245, 4.19245, 4.19789, 4.20072, 4.2018, 4.20379, 4.20783, 4.21089, 4.21445, 4.21445, 4.25763, 4.25814, 4.26052, 4.26451, 4.2739, 4.28193, 4.28396, 4.28798, 4.29407, 4.29407, 4.52911, 4.53198, 4.53672, 4.55541, 4.60773, 4.61507, 4.62345, 4.62805, 4.63107, 4.64436, 4.64766, 4.6572, 4.6664, 4.67201, 4.68806, 4.68909, 4.69403, 4.69978, 4.71084, 4.72128, 4.7248, 4.72699, 4.75281, 4.76315, 4.77977, 4.79026, 4.82001, 4.82101, 4.82201, 4.82389, 4.82754, 4.83502, 4.84104, 4.84413, 4.84513, 4.84996, 4.8535, 4.85502, 4.85785, 4.8605, 4.8625, 4.87536, 4.89026, 4.89325, 4.89933, 4.90471, 4.9077, 4.92018, 4.9574, 4.96775, 4.97008, 4.97575, 4.97983, 4.98083, 4.98283, 4.99775, 5.00305, 5.23887, 5.24228, 5.25598, 5.25809, 5.26801, 5.27778, 5.29884, 5.31091, 5.3281, 5.3339, 5.34166, 5.67704, 5.68156, 5.68801, 5.69363, 5.69666, 5.69898, 5.70661, 5.70763, 5.71427, 5.72216, 5.7282, 5.7312, 5.73634, 5.74171, 5.74171, 5.75052, 5.75826, 5.76026, 5.76756, 6.02253, 6.02735, 6.0302, 6.03419, 6.0413, 6.04387, 6.04614, 6.05236, 6.05391, 6.05809, 6.06008, 6.18179, 6.18279, 6.19042, 6.19295, 6.19604, 6.20004, 6.21124, 6.21423, 6.21776, 6.22325, 6.22955, 6.23254, 6.23354, 6.36588, 6.37658, 6.37861, 6.38175, 6.38564, 6.4147, 6.41996, 6.51871, 6.51998, 6.5213, 6.5258, 6.52998, 6.53098, 6.53911, 6.54323, 6.54423, 6.54722, 6.56396, 6.57097, 6.57698, 6.58416, 6.58624, 6.59211, 6.60103, 6.60354, 6.60865, 6.61882, 6.61983, 6.62284, 6.62583, 6.63271, 6.63566, 6.64192, 6.64595, 6.65394, 6.65594, 6.65893, 6.66092, 6.83145, 6.8335, 6.83549, 6.83649, 6.83749, 6.8415, 6.84504, 6.85478, 6.85628, 6.85628, 6.8638, 6.86778, 6.86914, 6.87534, 6.88017, 6.91625, 6.94382, 6.95072, 6.9606, 6.97001, 6.97201, 6.98654, 6.99642, 7.00045, 7.00245, 7.00444, 7.00952, 7.01048, 7.01348, 7.02648, 7.02862, 7.03484, 7.03554, 7.04953, 7.05053, 7.05452, 7.24583, 7.25285, 7.25983, 7.27277, 7.2849, 7.29271, 7.2977, 7.30274, 7.45482, 7.45783, 7.46083, 7.46183, 7.46662, 7.46794, 7.4729, 7.47641, 7.4781, 7.48091, 7.50085, 7.50551, 7.50806, 7.51793, 7.66984, 7.67284, 7.67483, 7.68103, 7.68786, 7.69384, 7.69789, 7.70404, 7.70591, 7.80002, 7.80281, 7.80381, 7.8068, 7.81209, 7.82581, 7.82762, 7.82829, 7.82926, 7.83182, 7.84706, 7.85818, 7.86021, 7.86624, 7.86915, 7.87117, 7.87411, 7.87913, 7.88126, 7.88423, 7.88929, 7.99881, 7.99981, 8.0028, 8.00854, 8.01359, 8.01665, 8.01962, 8.02261, 8.03013, 8.03419, 8.03628, 8.04238, 8.04891, 8.04991, 8.27141, 8.34704, 8.35702, 8.364, 8.365, 8.44479, 8.44829, 8.45528, 8.45779, 8.46229, 8.46229, 8.4724, 8.4734, 8.47539, 8.50789, 8.56567, 8.57078, 8.57377, 8.57876, 8.72992, 8.73183, 8.73583, 8.86374, 8.87719, 8.88824, 8.89322, 8.91025, 8.91718, 8.91918, 9.01501, 9.017, 9.019, 9.01999, 9.01999, 9.02955, 9.03154, 9.12801, 9.12852, 9.13052, 9.13603, 9.13902, 9.145, 9.15748, 9.30483, 9.30898, 9.31204, 9.31303, 9.31702, 9.32214, 9.32912, 9.34161, 9.34708, 9.40073, 9.40173, 9.40971, 9.41071, 9.4124, 9.4179, 9.42188, 9.43286, 9.43385, 9.43684, 9.43996, 9.44195, 9.44295, 9.44794, 9.45492, 9.4639, 9.46589, 9.46689, 9.46789, 9.47088, 9.47188, 9.47786, 9.48285, 9.49282, 9.49482, 9.50381, 9.50681, 9.51939, 9.52118, 9.52318, 9.52517, 9.52717, 9.53315, 9.53814, 9.53921, 9.54213, 9.54412, 9.54512, 9.57561, 9.57761, 9.5826, 9.58659, 9.60158, 9.60258, 9.60557, 9.60656, 9.61055, 9.61454, 9.61654, 9.62252, 9.62709, 9.62809, 9.63308, 9.64305, 9.64505, 9.64804, 9.65802, 9.67249, 9.67419, 9.67716, 9.69381, 9.69544, 9.70168, 9.71005, 9.7141, 9.72321, 9.73019, 9.73418, 9.73817, 9.74515, 9.75612, 9.75863, 9.98275, 9.98375, 9.98692, 9.99757, 9.99908, 10.00471, 10.01241, 10.01594, 10.02773, 10.03172, 10.03829, 10.04782, 10.0563, 10.05988, 10.0729, 10.0777, 10.0787, 10.07969, 10.0867, 10.2959, 10.30388, 10.31186, 10.31285, 10.31485, 10.31585, 10.32099, 10.33794, 10.35004, 10.35303, 10.35773, 10.36569, 10.37041, 10.3724, 10.3734, 10.37839, 10.38138, 10.38488, 10.38488, 10.39536, 10.40534, 10.54049, 10.54178, 10.54477, 10.55303, 10.5697, 10.57976, 10.58594, 10.59003, 10.69775, 10.70074, 10.70274, 10.70274, 10.70374, 10.71072, 10.71271, 10.71371, 10.71821, 10.7212, 10.72519, 10.72918, 10.73816, 10.74115, 10.74414, 10.74813, 10.75611, 10.7581, 10.76209, 10.76309, 10.76708, 10.76908, 10.79103, 10.79345, 10.79526, 10.8036, 10.80759, 10.81558, 10.81662, 10.82207, 10.83205, 10.84518, 10.84663, 10.84896, 10.85594, 10.85945, 10.98478, 10.98977, 10.99077, 10.99176, 10.99276, 10.99575, 10.99675, 11.01172, 11.01969, 11.02568, 11.03565, 11.04961, 11.05659, 11.05813, 11.06065, 11.06163, 11.06163, 11.06761, 11.06761, 11.09012, 11.09311, 11.23763, 11.24661, 11.25318, 11.25617, 11.25826, 11.27239, 11.27538, 11.28237, 11.2845, 11.28735, 11.28886, 11.29164, 11.29317, 11.29317, 11.2945, 11.43445, 11.44243, 11.54146, 11.54146, 11.55144, 11.55296, 11.55495, 11.55695, 11.56692, 11.57091, 11.69102, 11.7155, 11.72248, 11.72448, 11.72847, 11.73545, 11.74442, 11.7564, 11.75939, 11.76338, 11.7673, 11.76979, 11.78019, 11.78319, 11.78717, 11.79256, 11.79815, 11.80513, 11.80712, 11.81033, 11.81233, 11.81732, 11.82438, 11.82687, 11.82887, 11.83086, 11.83186, 11.84087, 11.84486, 11.85088, 11.85188, 11.8709, 11.88843, 11.88895, 11.89492, 12.07694, 12.08006, 12.08107, 12.08406, 12.08506, 12.09005, 12.09204, 12.09703, 12.10102, 12.11, 12.11199, 12.11798, 12.24785, 12.24837, 12.25135, 12.26583, 12.26935, 12.27136, 12.2824, 12.44814, 12.45014, 12.45129, 12.45417, 12.4562, 12.4572, 12.45924, 12.46323, 12.46562, 12.46912, 12.47211, 12.47511, 12.48209, 12.48408, 12.48608, 12.48807, 12.50204, 12.5225, 12.53013, 12.56377, 12.56576, 12.58525, 12.59313, 12.59345, 12.59445, 12.59744, 12.60343, 12.61041, 12.61141, 12.73756, 12.73955, 12.74653, 12.75052, 12.75252, 12.75551, 12.7595, 12.76848, 12.77352, 12.77452, 12.77651, 12.77651, 12.77849, 12.781, 12.78849, 12.79348, 12.80246, 12.85702, 12.96531, 12.9733, 12.98052, 12.98204, 12.98502, 12.99604, 12.99802, 13.00343, 13.07929, 13.0813, 13.0823, 13.08429, 13.08828, 13.08928, 13.09789, 13.09889, 13.0999, 13.10141, 13.1034, 13.10639, 13.12248, 13.14002, 13.14152, 13.14352, 13.14551, 13.15005, 13.15309, 13.16007, 13.1661, 13.17508, 13.22689, 13.23587, 13.24237, 13.26062, 13.2656, 13.2656, 13.28211, 13.28367, 13.28624, 13.2897, 13.2962, 13.30598, 13.31431, 13.3203, 13.32329, 13.32669, 13.33498, 13.34052, 13.34811, 13.3501, 13.35616, 13.3612, 13.36313, 13.36467, 13.37594, 13.37691, 13.37791, 13.37891, 13.4163, 13.41929, 13.42129, 13.42229, 13.43286, 13.47522, 13.48302, 13.48796, 13.49796, 13.51148, 13.5295, 13.5421, 13.54985, 13.55496, 13.55737, 13.55833, 13.56435, 13.58553, 13.58652, 13.60927, 13.61687, 13.62518, 13.64833, 13.65817, 13.67112, 13.6761, 13.79986, 13.89951, 13.97541] 6 | 7 | # Function to plot 8 | plt.plot(x,y) 9 | 10 | plt.xlabel('Image Count') 11 | plt.ylabel('Time (seconds)') 12 | 13 | plt.title('Multi Thread Execution') 14 | # function to show the plot 15 | plt.show() 16 | 17 | 18 | 19 | """ 20 | l = [[1, 0.09719], [2, 0.12229], [3, 0.13236], [4, 0.13739], [5, 0.13739], [6, 0.15749], [7, 0.16249], [8, 0.16249], [9, 0.16249], [10, 0.17253], [11, 0.2034], [12, 0.20761], [13, 0.20861], [14, 0.22734], [15, 0.22734], [16, 0.23542], [17, 0.2486], [18, 0.26073], [19, 0.26172], [20, 0.27741], [21, 0.31225], [22, 0.34214], [23, 0.34724], [24, 0.34724], [25, 0.35225], [26, 0.35225], [27, 0.37244], [28, 0.37497], [29, 0.37756], [30, 0.38713], [31, 0.39214], [32, 0.3972], [33, 0.40726], [34, 0.40726], [35, 0.41226], [36, 0.41735], [37, 0.43752], [38, 0.44253], [39, 0.4476], [40, 0.45211], [41, 0.45211], [42, 0.46778], [43, 0.48808], [44, 0.49816], [45, 0.51225], [46, 0.52233], [47, 0.52857], [48, 0.53968], [49, 0.54219], [50, 0.54219], [51, 0.54878], [52, 0.55991], [53, 0.56452], [54, 0.56452], [55, 0.56911], [56, 0.57211], [57, 0.57717], [58, 0.60236], [59, 0.61243], [60, 0.62957], [61, 0.6623], [62, 0.67244], [63, 0.71032], [64, 0.71283], [65, 0.71773], [66, 0.73043], [67, 0.73849], [68, 0.74251], [69, 0.75171], [70, 0.75271], [71, 0.75271], [72, 0.75271], [73, 0.75753], [74, 0.7606], [75, 0.76764], [76, 0.77271], [77, 0.77884], [78, 0.79097], [79, 0.79247], [80, 0.79247], [81, 0.79247], [82, 0.80107], [83, 0.82275], [84, 0.83285], [85, 0.86972], [86, 0.87288], [87, 0.89278], [88, 0.90186], [89, 0.90293], [90, 1.02322], [91, 1.02774], [92, 1.09816], [93, 1.10774], [94, 1.13523], [95, 1.13776], [96, 1.14789], [97, 1.14789], [98, 1.17409], [99, 1.17776], [100, 1.21405], [101, 1.21405], [102, 1.21833], [103, 1.22284], [104, 1.22745], [105, 1.23757], [106, 1.24258], [107, 1.24663], [108, 1.24766], [109, 1.24766], [110, 1.25469], [111, 1.25774], [112, 1.26477], [113, 1.27234], [114, 1.27487], [115, 1.30426], [116, 1.32554], [117, 1.32757], [118, 1.34297], [119, 1.34857], [120, 1.35263], [121, 1.49807], [122, 1.5017], [123, 1.50773], [124, 1.51291], [125, 1.54271], [126, 1.54271], [127, 1.63356], [128, 1.63356], [129, 1.63863], [130, 1.64266], [131, 1.64872], [132, 1.68343], [133, 1.68681], [134, 1.68774], [135, 1.68972], [136, 1.69164], [137, 1.69268], [138, 1.69368], [139, 1.69467], [140, 1.69679], [141, 1.69863], [142, 1.70062], [143, 1.70344], [144, 1.70811], [145, 1.71157], [146, 1.71257], [147, 1.71257], [148, 1.71257], [149, 1.73194], [150, 1.73294], [151, 1.73294], [152, 1.74001], [153, 1.74758], [154, 1.74919], [155, 1.75317], [156, 1.76358], [157, 1.77291], [158, 1.77794], [159, 1.77794], [160, 1.78795], [161, 1.79098], [162, 1.793], [163, 1.80296], [164, 1.80794], [165, 1.81096], [166, 1.82328], [167, 1.82328], [168, 1.96754], [169, 1.96854], [170, 1.96854], [171, 1.9736], [172, 1.9736], [173, 1.97773], [174, 1.97773], [175, 1.98781], [176, 1.99751], [177, 2.00119], [178, 2.00368], [179, 2.00779], [180, 2.0128], [181, 2.02927], [182, 2.03027], [183, 2.03779], [184, 2.04594], [185, 2.04846], [186, 2.06618], [187, 2.0727], [188, 2.07779], [189, 2.09241], [190, 2.09241], [191, 2.09546], [192, 2.1057], [193, 2.10669], [194, 2.11072], [195, 2.11617], [196, 2.1177], [197, 2.1177], [198, 2.12781], [199, 2.13795], [200, 2.14783], [201, 2.15581], [202, 2.15783], [203, 2.16284], [204, 2.16284], [205, 2.16796], [206, 2.17203], [207, 2.18566], [208, 2.18887], [209, 2.18987], [210, 2.19281], [211, 2.19414], [212, 2.20295], [213, 2.20757], [214, 2.20948], [215, 2.21621], [216, 2.21773], [217, 2.22511], [218, 2.23138], [219, 2.24806], [220, 2.25612], [221, 2.26267], [222, 2.2782], [223, 2.48813], [224, 2.49266], [225, 2.49266], [226, 2.50282], [227, 2.5117], [228, 2.5127], [229, 2.52279], [230, 2.54258], [231, 2.56276], [232, 2.57284], [233, 2.58295], [234, 2.58812], [235, 2.58965], [236, 2.59268], [237, 2.59268], [238, 2.59776], [239, 2.61188], [240, 2.61243], [241, 2.61443], [242, 2.61443], [243, 2.79401], [244, 2.79753], [245, 2.79753], [246, 2.80206], [247, 2.80411], [248, 2.80764], [249, 2.82442], [250, 2.82442], [251, 2.82442], [252, 2.83249], [253, 2.83451], [254, 2.83755], [255, 2.84508], [256, 2.84763], [257, 2.85467], [258, 2.85769], [259, 2.86274], [260, 2.86783], [261, 2.86783], [262, 2.87589], [263, 2.89276], [264, 2.8933], [265, 2.91223], [266, 2.91383], [267, 2.91885], [268, 2.92097], [269, 2.92197], [270, 2.92757], [271, 2.92757], [272, 2.92757], [273, 2.93571], [274, 2.93773], [275, 2.93773], [276, 2.9626], [277, 2.96615], [278, 2.97473], [279, 2.97524], [280, 2.97779], [281, 2.9828], [282, 2.9828], [283, 2.98736], [284, 2.99744], [285, 2.99744], [286, 3.01507], [287, 3.02771], [288, 3.03103], [289, 3.03217], [290, 3.03217], [291, 3.03521], [292, 3.03775], [293, 3.04275], [294, 3.04731], [295, 3.05231], [296, 3.06237], [297, 3.0654], [298, 3.0886], [299, 3.09217], [300, 3.10119], [301, 3.43764], [302, 3.44894], [303, 3.45098], [304, 3.45308], [305, 3.47106], [306, 3.47309], [307, 3.50212], [308, 3.51762], [309, 3.52425], [310, 3.52778], [311, 3.53334], [312, 3.53793], [313, 3.53793], [314, 3.54756], [315, 3.55158], [316, 3.55362], [317, 3.56375], [318, 3.56375], [319, 3.56777], [320, 3.582], [321, 3.5947], [322, 3.60208], [323, 3.60419], [324, 3.60659], [325, 3.735], [326, 3.735], [327, 3.73943], [328, 3.73943], [329, 3.74752], [330, 3.75253], [331, 3.75306], [332, 3.75765], [333, 3.75765], [334, 3.75765], [335, 3.76536], [336, 3.76536], [337, 3.77745], [338, 4.12556], [339, 4.13163], [340, 4.13301], [341, 4.13401], [342, 4.13769], [343, 4.13983], [344, 4.14187], [345, 4.14187], [346, 4.1479], [347, 4.15197], [348, 4.15804], [349, 4.1621], [350, 4.1621], [351, 4.1621], [352, 4.1702], [353, 4.17223], [354, 4.17223], [355, 4.17779], [356, 4.18032], [357, 4.18234], [358, 4.18787], [359, 4.19039], [360, 4.19245], [361, 4.19245], [362, 4.19789], [363, 4.20072], [364, 4.2018], [365, 4.20379], [366, 4.20783], [367, 4.21089], [368, 4.21445], [369, 4.21445], [370, 4.25763], [371, 4.25814], [372, 4.26052], [373, 4.26451], [374, 4.2739], [375, 4.28193], [376, 4.28396], [377, 4.28798], [378, 4.29407], [379, 4.29407], [380, 4.52911], [381, 4.53198], [382, 4.53672], [383, 4.55541], [384, 4.60773], [385, 4.61507], [386, 4.62345], [387, 4.62805], [388, 4.63107], [389, 4.64436], [390, 4.64766], [391, 4.6572], [392, 4.6664], [393, 4.67201], [394, 4.68806], [395, 4.68909], [396, 4.69403], [397, 4.69978], [398, 4.71084], [399, 4.72128], [400, 4.7248], [401, 4.72699], [402, 4.75281], [403, 4.76315], [404, 4.77977], [405, 4.79026], [406, 4.82001], [407, 4.82101], [408, 4.82201], [409, 4.82389], [410, 4.82754], [411, 4.83502], [412, 4.84104], [413, 4.84413], [414, 4.84513], [415, 4.84996], [416, 4.8535], [417, 4.85502], [418, 4.85785], [419, 4.8605], [420, 4.8625], [421, 4.87536], [422, 4.89026], [423, 4.89325], [424, 4.89933], [425, 4.90471], [426, 4.9077], [427, 4.92018], [428, 4.9574], [429, 4.96775], [430, 4.97008], [431, 4.97575], [432, 4.97983], [433, 4.98083], [434, 4.98283], [435, 4.99775], [436, 5.00305], [437, 5.23887], [438, 5.24228], [439, 5.25598], [440, 5.25809], [441, 5.26801], [442, 5.27778], [443, 5.29884], [444, 5.31091], [445, 5.3281], [446, 5.3339], [447, 5.34166], [448, 5.67704], [449, 5.68156], [450, 5.68801], [451, 5.69363], [452, 5.69666], [453, 5.69898], [454, 5.70661], [455, 5.70763], [456, 5.71427], [457, 5.72216], [458, 5.7282], [459, 5.7312], [460, 5.73634], [461, 5.74171], [462, 5.74171], [463, 5.75052], [464, 5.75826], [465, 5.76026], [466, 5.76756], [467, 6.02253], [468, 6.02735], [469, 6.0302], [470, 6.03419], [471, 6.0413], [472, 6.04387], [473, 6.04614], [474, 6.05236], [475, 6.05391], [476, 6.05809], [477, 6.06008], [478, 6.18179], [479, 6.18279], [480, 6.19042], [481, 6.19295], [482, 6.19604], [483, 6.20004], [484, 6.21124], [485, 6.21423], [486, 6.21776], [487, 6.22325], [488, 6.22955], [489, 6.23254], [490, 6.23354], [491, 6.36588], [492, 6.37658], [493, 6.37861], [494, 6.38175], [495, 6.38564], [496, 6.4147], [497, 6.41996], [498, 6.51871], [499, 6.51998], [500, 6.5213], [501, 6.5258], [502, 6.52998], [503, 6.53098], [504, 6.53911], [505, 6.54323], [506, 6.54423], [507, 6.54722], [508, 6.56396], [509, 6.57097], [510, 6.57698], [511, 6.58416], [512, 6.58624], [513, 6.59211], [514, 6.60103], [515, 6.60354], [516, 6.60865], [517, 6.61882], [518, 6.61983], [519, 6.62284], [520, 6.62583], [521, 6.63271], [522, 6.63566], [523, 6.64192], [524, 6.64595], [525, 6.65394], [526, 6.65594], [527, 6.65893], [528, 6.66092], [529, 6.83145], [530, 6.8335], [531, 6.83549], [532, 6.83649], [533, 6.83749], [534, 6.8415], [535, 6.84504], [536, 6.85478], [537, 6.85628], [538, 6.85628], [539, 6.8638], [540, 6.86778], [541, 6.86914], [542, 6.87534], [543, 6.88017], [544, 6.91625], [545, 6.94382], [546, 6.95072], [547, 6.9606], [548, 6.97001], [549, 6.97201], [550, 6.98654], [551, 6.99642], [552, 7.00045], [553, 7.00245], [554, 7.00444], [555, 7.00952], [556, 7.01048], [557, 7.01348], [558, 7.02648], [559, 7.02862], [560, 7.03484], [561, 7.03554], [562, 7.04953], [563, 7.05053], [564, 7.05452], [565, 7.24583], [566, 7.25285], [567, 7.25983], [568, 7.27277], [569, 7.2849], [570, 7.29271], [571, 7.2977], [572, 7.30274], [573, 7.45482], [574, 7.45783], [575, 7.46083], [576, 7.46183], [577, 7.46662], [578, 7.46794], [579, 7.4729], [580, 7.47641], [581, 7.4781], [582, 7.48091], [583, 7.50085], [584, 7.50551], [585, 7.50806], [586, 7.51793], [587, 7.66984], [588, 7.67284], [589, 7.67483], [590, 7.68103], [591, 7.68786], [592, 7.69384], [593, 7.69789], [594, 7.70404], [595, 7.70591], [596, 7.80002], [597, 7.80281], [598, 7.80381], [599, 7.8068], [600, 7.81209], [601, 7.82581], [602, 7.82762], [603, 7.82829], [604, 7.82926], [605, 7.83182], [606, 7.84706], [607, 7.85818], [608, 7.86021], [609, 7.86624], [610, 7.86915], [611, 7.87117], [612, 7.87411], [613, 7.87913], [614, 7.88126], [615, 7.88423], [616, 7.88929], [617, 7.99881], [618, 7.99981], [619, 8.0028], [620, 8.00854], [621, 8.01359], [622, 8.01665], [623, 8.01962], [624, 8.02261], [625, 8.03013], [626, 8.03419], [627, 8.03628], [628, 8.04238], [629, 8.04891], [630, 8.04991], [631, 8.27141], [632, 8.34704], [633, 8.35702], [634, 8.364], [635, 8.365], [636, 8.44479], [637, 8.44829], [638, 8.45528], [639, 8.45779], [640, 8.46229], [641, 8.46229], [642, 8.4724], [643, 8.4734], [644, 8.47539], [645, 8.50789], [646, 8.56567], [647, 8.57078], [648, 8.57377], [649, 8.57876], [650, 8.72992], [651, 8.73183], [652, 8.73583], [653, 8.86374], [654, 8.87719], [655, 8.88824], [656, 8.89322], [657, 8.91025], [658, 8.91718], [659, 8.91918], [660, 9.01501], [661, 9.017], [662, 9.019], [663, 9.01999], [664, 9.01999], [665, 9.02955], [666, 9.03154], [667, 9.12801], [668, 9.12852], [669, 9.13052], [670, 9.13603], [671, 9.13902], [672, 9.145], [673, 9.15748], [674, 9.30483], [675, 9.30898], [676, 9.31204], [677, 9.31303], [678, 9.31702], [679, 9.32214], [680, 9.32912], [681, 9.34161], [682, 9.34708], [683, 9.40073], [684, 9.40173], [685, 9.40971], [686, 9.41071], [687, 9.4124], [688, 9.4179], [689, 9.42188], [690, 9.43286], [691, 9.43385], [692, 9.43684], [693, 9.43996], [694, 9.44195], [695, 9.44295], [696, 9.44794], [697, 9.45492], [698, 9.4639], [699, 9.46589], [700, 9.46689], [701, 9.46789], [702, 9.47088], [703, 9.47188], [704, 9.47786], [705, 9.48285], [706, 9.49282], [707, 9.49482], [708, 9.50381], [709, 9.50681], [710, 9.51939], [711, 9.52118], [712, 9.52318], [713, 9.52517], [714, 9.52717], [715, 9.53315], [716, 9.53814], [717, 9.53921], [718, 9.54213], [719, 9.54412], [720, 9.54512], [721, 9.57561], [722, 9.57761], [723, 9.5826], [724, 9.58659], [725, 9.60158], [726, 9.60258], [727, 9.60557], [728, 9.60656], [729, 9.61055], [730, 9.61454], [731, 9.61654], [732, 9.62252], [733, 9.62709], [734, 9.62809], [735, 9.63308], [736, 9.64305], [737, 9.64505], [738, 9.64804], [739, 9.65802], [740, 9.67249], [741, 9.67419], [742, 9.67716], [743, 9.69381], [744, 9.69544], [745, 9.70168], [746, 9.71005], [747, 9.7141], [748, 9.72321], [749, 9.73019], [750, 9.73418], [751, 9.73817], [752, 9.74515], [753, 9.75612], [754, 9.75863], [755, 9.98275], [756, 9.98375], [757, 9.98692], [758, 9.99757], [759, 9.99908], [760, 10.00471], [761, 10.01241], [762, 10.01594], [763, 10.02773], [764, 10.03172], [765, 10.03829], [766, 10.04782], [767, 10.0563], [768, 10.05988], [769, 10.0729], [770, 10.0777], [771, 10.0787], [772, 10.07969], [773, 10.0867], [774, 10.2959], [775, 10.30388], [776, 10.31186], [777, 10.31285], [778, 10.31485], [779, 10.31585], [780, 10.32099], [781, 10.33794], [782, 10.35004], [783, 10.35303], [784, 10.35773], [785, 10.36569], [786, 10.37041], [787, 10.3724], [788, 10.3734], [789, 10.37839], [790, 10.38138], [791, 10.38488], [792, 10.38488], [793, 10.39536], [794, 10.40534], [795, 10.54049], [796, 10.54178], [797, 10.54477], [798, 10.55303], [799, 10.5697], [800, 10.57976], [801, 10.58594], [802, 10.59003], [803, 10.69775], [804, 10.70074], [805, 10.70274], [806, 10.70274], [807, 10.70374], [808, 10.71072], [809, 10.71271], [810, 10.71371], [811, 10.71821], [812, 10.7212], [813, 10.72519], [814, 10.72918], [815, 10.73816], [816, 10.74115], [817, 10.74414], [818, 10.74813], [819, 10.75611], [820, 10.7581], [821, 10.76209], [822, 10.76309], [823, 10.76708], [824, 10.76908], [825, 10.79103], [826, 10.79345], [827, 10.79526], [828, 10.8036], [829, 10.80759], [830, 10.81558], [831, 10.81662], [832, 10.82207], [833, 10.83205], [834, 10.84518], [835, 10.84663], [836, 10.84896], [837, 10.85594], [838, 10.85945], [839, 10.98478], [840, 10.98977], [841, 10.99077], [842, 10.99176], [843, 10.99276], [844, 10.99575], [845, 10.99675], [846, 11.01172], [847, 11.01969], [848, 11.02568], [849, 11.03565], [850, 11.04961], [851, 11.05659], [852, 11.05813], [853, 11.06065], [854, 11.06163], [855, 11.06163], [856, 11.06761], [857, 11.06761], [858, 11.09012], [859, 11.09311], [860, 11.23763], [861, 11.24661], [862, 11.25318], [863, 11.25617], [864, 11.25826], [865, 11.27239], [866, 11.27538], [867, 11.28237], [868, 11.2845], [869, 11.28735], [870, 11.28886], [871, 11.29164], [872, 11.29317], [873, 11.29317], [874, 11.2945], [875, 11.43445], [876, 11.44243], [877, 11.54146], [878, 11.54146], [879, 11.55144], [880, 11.55296], [881, 11.55495], [882, 11.55695], [883, 11.56692], [884, 11.57091], [885, 11.69102], [886, 11.7155], [887, 11.72248], [888, 11.72448], [889, 11.72847], [890, 11.73545], [891, 11.74442], [892, 11.7564], [893, 11.75939], [894, 11.76338], [895, 11.7673], [896, 11.76979], [897, 11.78019], [898, 11.78319], [899, 11.78717], [900, 11.79256], [901, 11.79815], [902, 11.80513], [903, 11.80712], [904, 11.81033], [905, 11.81233], [906, 11.81732], [907, 11.82438], [908, 11.82687], [909, 11.82887], [910, 11.83086], [911, 11.83186], [912, 11.84087], [913, 11.84486], [914, 11.85088], [915, 11.85188], [916, 11.8709], [917, 11.88843], [918, 11.88895], [919, 11.89492], [920, 12.07694], [921, 12.08006], [922, 12.08107], [923, 12.08406], [924, 12.08506], [925, 12.09005], [926, 12.09204], [927, 12.09703], [928, 12.10102], [929, 12.11], [930, 12.11199], [931, 12.11798], [932, 12.24785], [933, 12.24837], [934, 12.25135], [935, 12.26583], [936, 12.26935], [937, 12.27136], [938, 12.2824], [939, 12.44814], [940, 12.45014], [941, 12.45129], [942, 12.45417], [943, 12.4562], [944, 12.4572], [945, 12.45924], [946, 12.46323], [947, 12.46562], [948, 12.46912], [949, 12.47211], [950, 12.47511], [951, 12.48209], [952, 12.48408], [953, 12.48608], [954, 12.48807], [955, 12.50204], [956, 12.5225], [957, 12.53013], [958, 12.56377], [959, 12.56576], [960, 12.58525], [961, 12.59313], [962, 12.59345], [963, 12.59445], [964, 12.59744], [965, 12.60343], [966, 12.61041], [967, 12.61141], [968, 12.73756], [969, 12.73955], [970, 12.74653], [971, 12.75052], [972, 12.75252], [973, 12.75551], [974, 12.7595], [975, 12.76848], [976, 12.77352], [977, 12.77452], [978, 12.77651], [979, 12.77651], [980, 12.77849], [981, 12.781], [982, 12.78849], [983, 12.79348], [984, 12.80246], [985, 12.85702], [986, 12.96531], [987, 12.9733], [988, 12.98052], [989, 12.98204], [990, 12.98502], [991, 12.99604], [992, 12.99802], [993, 13.00343], [994, 13.07929], [995, 13.0813], [996, 13.0823], [997, 13.08429], [998, 13.08828], [999, 13.08928], [1000, 13.09789], [1001, 13.09889], [1002, 13.0999], [1003, 13.10141], [1004, 13.1034], [1005, 13.10639], [1006, 13.12248], [1007, 13.14002], [1008, 13.14152], [1009, 13.14352], [1010, 13.14551], [1011, 13.15005], [1012, 13.15309], [1013, 13.16007], [1014, 13.1661], [1015, 13.17508], [1016, 13.22689], [1017, 13.23587], [1018, 13.24237], [1019, 13.26062], [1020, 13.2656], [1021, 13.2656], [1022, 13.28211], [1023, 13.28367], [1024, 13.28624], [1025, 13.2897], [1026, 13.2962], [1027, 13.30598], [1028, 13.31431], [1029, 13.3203], [1030, 13.32329], [1031, 13.32669], [1032, 13.33498], [1033, 13.34052], [1034, 13.34811], [1035, 13.3501], [1036, 13.35616], [1037, 13.3612], [1038, 13.36313], [1039, 13.36467], [1040, 13.37594], [1041, 13.37691], [1042, 13.37791], [1043, 13.37891], [1044, 13.4163], [1045, 13.41929], [1046, 13.42129], [1047, 13.42229], [1048, 13.43286], [1049, 13.47522], [1050, 13.48302], [1051, 13.48796], [1052, 13.49796], [1053, 13.51148], [1054, 13.5295], [1055, 13.5421], [1056, 13.54985], [1057, 13.55496], [1058, 13.55737], [1059, 13.55833], [1060, 13.56435], [1061, 13.58553], [1062, 13.58652], [1063, 13.60927], [1064, 13.61687], [1065, 13.62518], [1066, 13.64833], [1067, 13.65817], [1068, 13.67112], [1069, 13.6761], [1070, 13.79986], [1071, 13.89951], [1072, 13.97541]] 21 | ll= [] 22 | c1 = 0 23 | for x in l: 24 | try: 25 | if x[0] is not None: 26 | ll.append(x) 27 | except: 28 | pass 29 | x = [] 30 | y = [] 31 | for i in ll: 32 | x.append(i[0]) 33 | y.append(i[1]) 34 | 35 | # x is imae count 36 | # y is time stamp 37 | print(x) 38 | print(y) 39 | z = list(y) 40 | y.sort() 41 | print(y) 42 | print(z==y) 43 | """ 44 | -------------------------------------------------------------------------------- /Generating Graph/single_core_graph.py: -------------------------------------------------------------------------------- 1 | from matplotlib import pyplot as plt 2 | 3 | 4 | x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072] 5 | y = [0.16798, 0.32265, 0.46663, 0.58964, 0.76592, 0.83423, 0.93199, 0.93985, 0.96273, 0.96521, 0.98616, 1.00705, 1.02767, 1.03655, 1.07221, 1.09448, 1.11301, 1.16272, 1.20968, 1.25134, 1.29245, 1.33339, 1.37652, 1.458, 1.53636, 1.61803, 1.62203, 1.64416, 1.64728, 1.67604, 1.70923, 1.74823, 1.78948, 1.82887, 1.86686, 1.91151, 1.95019, 1.98994, 2.02617, 2.07595, 2.11704, 2.15226, 2.23734, 2.24113, 2.26851, 2.27374, 2.3233, 2.37903, 2.43303, 2.48105, 2.51728, 2.55892, 2.62083, 2.68302, 2.76578, 2.82617, 2.90675, 2.9733, 3.04594, 3.11892, 3.12291, 3.14199, 3.14498, 3.20434, 3.26518, 3.32717, 3.38957, 3.43816, 3.52147, 3.64221, 3.64522, 3.67227, 3.68175, 3.72503, 3.77151, 3.81297, 3.86282, 3.91095, 3.95819, 4.01804, 4.06787, 4.12579, 4.19402, 4.25595, 4.30982, 4.36684, 4.5328, 4.69828, 4.75647, 4.76699, 4.78416, 4.78715, 4.81107, 4.83997, 4.89452, 4.95869, 5.02131, 5.08389, 5.14803, 5.21301, 5.2948, 5.36575, 5.44096, 5.50596, 5.57476, 5.76787, 5.77516, 5.82247, 5.82898, 5.88287, 5.94595, 6.00802, 6.08501, 6.12537, 6.1632, 6.22897, 6.28331, 6.33157, 6.37595, 6.41806, 6.46958, 6.51177, 6.61431, 6.61791, 6.64646, 6.6495, 6.68739, 6.731, 6.77158, 6.8276, 6.88718, 6.95234, 7.01843, 7.07504, 7.14419, 7.20056, 7.25506, 7.30297, 7.35405, 7.39499, 7.43172, 7.46332, 7.50129, 7.53711, 7.57695, 7.60688, 7.64004, 7.6876, 7.72637, 7.7738, 7.81641, 7.85892, 7.93448, 8.01027, 8.06124, 8.13013, 8.18711, 8.26777, 8.38348, 8.47231, 8.58871, 8.71143, 8.79331, 8.88925, 8.92645, 8.94674, 9.05447, 9.20552, 9.38911, 9.51565, 9.97229, 10.01108, 10.05634, 10.09961, 10.1565, 10.20776, 10.25673, 10.30695, 10.3559, 10.4052, 10.45502, 10.50306, 10.55031, 11.09502, 11.14071, 11.3389, 11.40095, 11.43634, 11.46671, 11.5158, 11.56945, 11.81677, 11.865, 11.92394, 11.96174, 11.98322, 12.11699, 12.12917, 12.19142, 12.29597, 12.39511, 12.42661, 12.4458, 12.48274, 12.51043, 12.54554, 12.57676, 12.60093, 12.65045, 12.68362, 12.72234, 12.76607, 13.38237, 13.42284, 13.45286, 13.49814, 13.52521, 13.57127, 13.61412, 13.64004, 13.68587, 13.72056, 13.75502, 13.78825, 13.82627, 13.86052, 13.90463, 13.93491, 13.95576, 13.97786, 14.00402, 14.02964, 14.08033, 14.38265, 14.44338, 14.48602, 14.55306, 14.65568, 14.73121, 14.80536, 14.92371, 15.13011, 15.20345, 15.28543, 15.35335, 15.50014, 15.55868, 15.63268, 15.67276, 15.69789, 15.76374, 15.80662, 15.8849, 15.92524, 16.02053, 16.09265, 16.10118, 16.15152, 16.21409, 16.22148, 16.24716, 16.28146, 16.38484, 16.4609, 17.04608, 17.70938, 17.99054, 18.05367, 18.13124, 18.18158, 18.3109, 18.43286, 18.54888, 18.70582, 18.84015, 18.9961, 19.17483, 19.29249, 19.40101, 19.45167, 19.48648, 19.60137, 19.73569, 19.88177, 20.00524, 20.46704, 20.50681, 20.55431, 20.61102, 20.66072, 20.712, 20.75166, 20.81059, 20.86034, 20.90187, 20.95568, 21.00329, 21.04869, 21.48547, 21.51304, 21.68308, 21.72974, 21.76066, 21.79105, 21.82537, 21.86978, 22.15358, 22.18986, 22.22055, 22.25769, 22.2675, 22.35546, 22.36879, 22.41939, 22.54047, 22.64708, 22.6872, 22.70419, 22.74464, 22.78122, 22.8224, 22.85179, 22.87436, 22.91294, 22.94456, 22.97807, 23.00918, 23.69062, 23.72442, 23.7459, 23.77636, 23.79152, 23.8194, 23.84716, 23.87493, 23.90244, 23.92741, 23.96515, 24.00164, 24.03939, 24.07688, 24.14644, 24.26522, 24.32009, 24.34884, 24.37383, 24.39472, 24.4215, 24.67213, 24.71092, 24.7563, 24.8044, 24.91068, 25.02265, 25.09953, 25.153, 25.39333, 25.5251, 25.66818, 25.80583, 25.98057, 26.02823, 26.08285, 26.10978, 26.12574, 26.16913, 26.1971, 26.24448, 26.28768, 26.37052, 26.48008, 26.49198, 26.5768, 26.66617, 26.67524, 26.71513, 26.79408, 26.94177, 27.00205, 27.69339, 28.38684, 28.67982, 28.76889, 28.90961, 29.01125, 29.20904, 29.39388, 29.49144, 29.62486, 29.73545, 29.86528, 30.01825, 30.12276, 30.24168, 30.28982, 30.32008, 30.42157, 30.58454, 30.73953, 30.86486, 31.40176, 31.44437, 31.50475, 31.57241, 31.63764, 31.69459, 31.75657, 31.81592, 31.87189, 31.92646, 31.98702, 32.04649, 32.10645, 32.83196, 32.88885, 33.0538, 33.09969, 33.1194, 33.14209, 33.17172, 33.1983, 33.42377, 33.478, 33.53293, 33.57907, 33.59165, 33.6936, 33.71204, 33.76833, 33.85562, 33.96044, 33.98853, 34.00777, 34.03863, 34.0751, 34.10844, 34.13726, 34.15793, 34.20742, 34.24365, 34.28558, 34.32529, 35.12591, 35.15663, 35.19789, 35.23887, 35.26483, 35.30843, 35.35211, 35.38885, 35.42467, 35.45245, 35.48533, 35.52958, 35.56029, 35.58848, 35.64255, 35.67104, 35.70053, 35.71797, 35.7557, 35.7751, 35.81703, 36.12402, 36.18375, 36.23686, 36.2916, 36.38436, 36.4683, 36.53547, 36.63144, 36.8303, 36.91182, 36.99905, 37.07628, 37.22613, 37.29839, 37.36991, 37.4094, 37.43179, 37.49072, 37.53423, 37.58586, 37.61177, 37.71325, 37.81072, 37.82765, 37.90484, 37.96504, 37.97115, 37.98897, 38.01192, 38.07818, 38.141, 38.68353, 39.40831, 39.79772, 39.88866, 40.01322, 40.11514, 40.23095, 40.35285, 40.42451, 40.55033, 40.65327, 40.72412, 40.81527, 40.86666, 40.93148, 40.95518, 40.97197, 41.05415, 41.1579, 41.26267, 41.44272, 41.58341, 41.74634, 41.82834, 41.94626, 42.03998, 42.11261, 42.18532, 42.23771, 42.31293, 42.39503, 42.44402, 42.50833, 42.53262, 42.54718, 42.62829, 42.73382, 42.86459, 42.95134, 43.26728, 43.31147, 43.36413, 43.39664, 43.42987, 43.47958, 43.53975, 43.60539, 43.65468, 43.69022, 43.7484, 43.8034, 43.86048, 44.34512, 44.39627, 44.5514, 44.58912, 44.60679, 44.62816, 44.67155, 44.6961, 44.86109, 44.88969, 44.9174, 44.95067, 44.96127, 45.06, 45.06962, 45.09717, 45.15797, 45.22772, 45.24513, 45.26736, 45.29464, 45.31101, 45.33796, 45.36214, 45.38445, 45.43051, 45.46275, 45.49006, 45.5292, 46.49336, 46.52768, 46.55012, 46.58796, 46.61142, 46.64932, 46.67525, 46.69918, 46.72329, 46.75022, 46.77914, 46.81305, 46.84696, 46.87289, 46.90416, 46.92976, 46.94971, 46.9717, 46.9906, 47.00357, 47.03105, 47.25537, 47.30697, 47.3867, 47.48486, 47.66806, 47.80506, 47.90411, 47.97614, 48.10778, 48.16721, 48.22688, 48.26376, 48.37982, 48.43538, 48.48511, 48.53362, 48.56213, 48.6124, 48.64507, 48.71175, 48.75577, 48.82769, 48.87744, 48.88075, 48.9283, 48.98826, 48.99425, 49.00335, 49.02891, 49.11883, 49.17191, 49.66865, 50.32145, 50.67794, 50.76792, 50.90615, 50.9944, 51.11254, 51.22621, 51.31448, 51.46175, 51.56462, 51.69337, 51.82856, 51.92599, 52.01545, 52.06341, 52.08843, 52.21239, 52.36212, 52.51668, 52.64373, 53.00924, 53.03417, 53.06709, 53.09904, 53.136, 53.17191, 53.20781, 53.24275, 53.29622, 53.35279, 53.40372, 53.45213, 53.50105, 54.09049, 54.13288, 54.34461, 54.42508, 54.44458, 54.48987, 54.54048, 54.575, 54.81192, 54.86212, 54.90021, 54.94343, 54.95618, 55.0652, 55.07769, 55.13226, 55.23091, 55.36491, 55.39238, 55.40911, 55.44858, 55.48224, 55.52244, 55.55223, 55.58243, 55.62979, 55.69286, 55.75901, 55.82723, 56.74496, 56.79955, 56.82669, 56.87648, 56.90398, 56.95575, 57.00779, 57.04733, 57.08972, 57.13604, 57.17796, 57.2393, 57.30546, 57.35364, 57.42032, 57.46608, 57.49203, 57.51277, 57.53272, 57.54668, 57.57618, 57.84319, 57.8887, 57.94185, 57.99798, 58.0724, 58.1489, 58.20484, 58.27149, 58.54402, 58.61632, 58.69892, 58.74919, 58.9141, 59.00287, 59.07742, 59.12656, 59.15737, 59.24122, 59.28152, 59.34011, 59.36964, 59.45636, 59.52663, 59.53272, 59.56614, 59.60103, 59.60502, 59.61957, 59.64473, 59.7085, 59.76542, 60.30453, 60.91028, 61.21038, 61.26298, 61.387, 61.53142, 61.72423, 61.87043, 62.0143, 62.11663, 62.19181, 62.30885, 62.45077, 62.55259, 62.66324, 62.69119, 62.73015, 62.85755, 62.98103, 63.12382, 63.23869, 63.84168, 63.91395, 63.96931, 64.01119, 64.06595, 64.12884, 64.19693, 64.28406, 64.35721, 64.39182, 64.42103, 64.45085, 64.48642, 65.3804, 65.43972, 65.58426, 65.64146, 65.69053, 65.74936, 65.82891, 65.92199, 66.27056, 66.3147, 66.35938, 66.40192, 66.41557, 66.56908, 66.58118, 66.62502, 66.70845, 66.80584, 66.83354, 66.8575, 66.91196, 66.94963, 66.99531, 67.03455, 67.07999, 67.16239, 67.21805, 67.28396, 67.35106, 68.05158, 68.08022, 68.10018, 68.1351, 68.15388, 68.18609, 68.21697, 68.25686, 68.28988, 68.32918, 68.36603, 68.40911, 68.446, 68.47104, 68.50969, 68.54976, 68.59869, 68.62342, 68.65273, 68.67427, 68.74909, 69.0482, 69.08719, 69.12883, 69.20397, 69.34672, 69.45671, 69.52311, 69.64442, 69.92343, 70.0433, 70.12871, 70.18971, 70.40555, 70.47462, 70.53683, 70.57812, 70.60162, 70.65583, 70.70453, 70.75629, 70.79423, 70.87882, 70.95626, 70.96279, 71.03569, 71.09345, 71.09966, 71.12387, 71.15694, 71.26761, 71.35575, 72.18817, 72.88498, 73.12466, 73.1842, 73.25318, 73.32121, 73.43259, 73.53836, 73.67338, 73.84179, 73.95589, 74.07563, 74.20885, 74.29507, 74.39887, 74.4333, 74.45952, 74.57337, 74.69954, 74.8593, 74.97356, 75.44789, 75.48308, 75.53221, 75.58391, 75.63411, 75.68565, 75.72683, 75.78242, 75.8243, 75.87602, 75.92168, 75.98228, 76.01827, 76.45597, 76.50653, 76.6981, 76.7397, 76.76012, 76.78633, 76.81581, 76.84974, 77.07045, 77.11398, 77.15746, 77.19973, 77.21077, 77.32429, 77.33895, 77.38833, 77.49162, 77.60903, 77.63948, 77.66374, 77.70528, 77.73431, 77.78078, 77.82276, 77.85979, 77.9394, 77.98052, 78.03569, 78.06277, 78.75943, 78.83122, 78.86476, 78.89852, 78.92017, 78.94934, 78.98112, 79.01079, 79.03546, 79.06515, 79.10702, 79.13292, 79.16483, 79.19476, 79.2267, 79.24565, 79.2646, 79.28995, 79.31887, 79.33882, 79.38071, 79.76274, 79.81825, 79.86251, 79.91437, 80.0141, 80.08792, 80.13923, 80.19612, 80.31836, 80.3849, 80.461, 80.533, 80.68132, 80.74727, 80.81134, 80.85543, 80.8781, 80.93221, 80.97384, 81.01984, 81.0606, 81.13989, 81.22273, 81.23071, 81.28568, 81.33895, 81.34477, 81.37069, 81.40939, 81.51297, 81.59302, 82.1967, 82.94808, 83.22492, 83.72129, 83.76326, 83.81219, 83.85826, 83.90586, 83.96048, 84.00483, 84.05966, 84.12588, 84.19264, 84.26057, 84.32317, 84.37054, 84.91529, 84.9651, 85.10313, 85.1407, 85.16344, 85.18632, 85.21717, 85.24395, 85.41424, 85.44405, 85.47528, 85.50319, 85.51074, 85.64065, 85.66282, 85.75328, 85.90156, 86.05039, 86.07822, 86.09782, 86.12895, 86.15211, 86.17255, 86.19494, 86.224, 86.28288, 86.32441, 86.37165, 86.42523, 86.99777, 87.0281, 87.04912, 87.0809, 87.11986, 87.16933, 87.22087, 87.25611, 87.29667, 87.33261, 87.3734, 87.41819, 87.46685, 87.51153, 87.57008, 87.59762, 87.62649, 87.68127, 87.74089, 87.78512, 87.87444, 88.23597, 88.2867, 88.34812, 88.40033, 88.51756, 88.61488, 88.69389, 88.83503, 89.08012, 89.15107, 89.30332, 89.44355, 89.74939, 89.88986, 90.01925, 90.09316, 90.13309, 90.22159, 90.28389, 90.37103, 90.42448, 90.54145, 90.61757, 90.62484, 90.66877, 90.72276, 90.73416, 90.74365, 90.78146, 90.89158, 90.95969, 91.57305, 92.28973, 92.66041] 6 | 7 | # Function to plot 8 | plt.plot(x,y) 9 | 10 | plt.xlabel('Image Count') 11 | plt.ylabel('Time (seconds)') 12 | 13 | plt.title('Sigle Core Execution') 14 | # function to show the plot 15 | plt.show() 16 | -------------------------------------------------------------------------------- /Graphs/100vs500Threads.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/searchformyusername/Duplicate-Images-Detection-using-Parallel-Processing/959492fcea64cfd3a980d71c1820b8c39d913913/Graphs/100vs500Threads.png -------------------------------------------------------------------------------- /Graphs/Analysing All 3 Together.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/searchformyusername/Duplicate-Images-Detection-using-Parallel-Processing/959492fcea64cfd3a980d71c1820b8c39d913913/Graphs/Analysing All 3 Together.png -------------------------------------------------------------------------------- /Graphs/multiple_core_execution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/searchformyusername/Duplicate-Images-Detection-using-Parallel-Processing/959492fcea64cfd3a980d71c1820b8c39d913913/Graphs/multiple_core_execution.png -------------------------------------------------------------------------------- /Graphs/multiple_core_execution_sorted_time.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/searchformyusername/Duplicate-Images-Detection-using-Parallel-Processing/959492fcea64cfd3a980d71c1820b8c39d913913/Graphs/multiple_core_execution_sorted_time.png -------------------------------------------------------------------------------- /Graphs/muti_thread_execution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/searchformyusername/Duplicate-Images-Detection-using-Parallel-Processing/959492fcea64cfd3a980d71c1820b8c39d913913/Graphs/muti_thread_execution.png -------------------------------------------------------------------------------- /Graphs/single_core_execution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/searchformyusername/Duplicate-Images-Detection-using-Parallel-Processing/959492fcea64cfd3a980d71c1820b8c39d913913/Graphs/single_core_execution.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Duplicate-Images-Detection-using-Parallel-Processing 2 | PDC Project 3 | 4 |
5 |
6 |