Open czgdp1807 opened 2 years ago
Regarding unordered_map alternatives we should benchmark all the implementations and the decide. There is no well designed benchmark for this purpose AFAIK.
I am determined to work for this issue. I don't know Cython but good at C++ for algorithm implementations and all. I wanted to contribute for this. Can I get to know what role can I do to resolve this issue? I would like to work on this issue under GSoC 2023.
Can I get to know what role can I do to resolve this issue?
This is a long term issue. Please read the description and write your proposal accordingly.
Description of the problem
We are starting off with implementing different backends for our APIs. C++ will be the first one to be implemented. We are planning to include both in our next release. Though not all APIs will be covered till the next release. However having as much as possible will be great. Following is a list of questions and task that needs to be considered for this issue,
quick_sort(input_array, backend=pydatastructs.Backend.CPP)
orquick_sort(input_array, backend=pydatastructs.Backend.Cython)
. Ifbackend
parameter is not provided then, the most efficient backend will be used. For example,quick_sort
will automatically select the right backend according to the benchmarks we have..h
and.cpp
file for one API. For example,OneDimensionalArray
will be implemented in a different.cpp
file andMultiDimensionalArray
will be implemented in a different.cpp
file. Note both these kind of arrays are in the same python file. The reason for separating codes is to disconnect the API implementations internally. This will also help in reducing the binary size of each implementation. If compilation of one fails then that won't effect the usage of others.Example of the problem
References/Other comments
[1] https://github.com/orgs/codezonediitj/projects/1/views/1
cc: @pratikgl