-
-
Notifications
You must be signed in to change notification settings - Fork 854
GSoC 2024 ‐ Jaysukh Makvana
I am Jaysukh Makvana from Gujarat, India. I am a final year Bachelor of Technology student in the department of Computer Science and Technology at Indian Institute of Technology, Jodhpur.
Referring the implementation of Complex64 and Complex128 arrays, I proposed adding support for Boolean array in stdlib-js which will be backed by Uint8Array. BooleanArray should have prototypes that any typed array have like get, set, sort, reverse, at etc. After implementing the BooleanArray constructors and prototypes we need to refactor the packages of @stdlib/array/*
to add the support of boolean datatype across the entire array namespace. In the same way, We need to refactor the packages of @stdlib/strided/*
to add the support of boolean datatype across the entire strided namespace. In parallel, We need to add some assertion package which we need to deal with different BooleanArray operation. Similar to strided and array namespace we need to refactor the packages of @stdlib/ndarray/*
to add the support of boolean datatype across ndarray namespace. In the end, We need to add new packages like mskfilter, mskreject and mskput to ndarray namespace to get ndarray API parity with typed arrays.
- At the starting of Coding Period, I had
@stdlib/array/bool
containing constructors and some prototypes like set, length etc. So, I started my work with adding the various prototypes for the BooleanArray. I added the map, sort, find, findLast, findIndex, findLastIndex, reverse, toReversed, toSorted, every, some, indexOf, lastIndexOf, includes, slice, subarray, reduce, reduceRight, join, toString, keys, values, with, at, fill, filter, toLocaleString, copyWithin, entries and forEach prototypes for BooleanArray. I added benchmarks, tests and docs files for the same. - I added the some assertion utilities which I needed to refactor the array and strided namespace which includes
@stdlib/assert/is-booleanarray
,@stdlib/assert/is-same-booleanarray
and it's base implementation. I added the one of the important package which reinterprets the BooleanArray as Uint8Array as@stdlib/strided/base/reinterpret-boolean
. - After those work, I refactored the packages of array namespace to add the support of boolean datatype to array namespace.
- Similarly, I refactored the packages of strided namespace to add the support of boolean datatype to strided namespace.
- Similarly, I refactored the packages of ndarray namespace to add the support of boolean datatype to ndarray namespace.
- Finally, I added the
@stdlib/ndarray/base/mskfilter
and@stdlib/ndarray/base/mskreject
which used for the masking of ndarray.
TODO: include a list of links to all relevant PRs along with a short description for each. For small bug fix PRs, you can group them together and describe them as, e.g., "various maintenance work".
TODO: add a summary of the current state of the project.
TODO: add a summary of what remains left to do. If there is a tracking issue, include a link to that issue.
TODO: add a summary of any unexpected challenges that you faced, along with any lessons learned during the course of your project.
TODO: add a report summary and include any acknowledgments (e.g., shout outs to contributors/maintainers who helped out along the way, etc).