Deep Dive๏ƒ

For general users of the framework, who are mainly concerned with learning how to use Ivy, then the Design section is the best place to start ๐Ÿ™‚

This deep dive section is more targeted at people who would like to dive deeper into how Ivy actually works under the hood ๐Ÿ”ง

Going through the sections outlined below will get you right into the weeds of the framework ๐ŸŒฑ, and hopefully give you a better understanding of what is actually going on behind the scenes ๐ŸŽฌ

Itโ€™s best to go through the sub-sections from start to finish, but you can also dive in at any stage! Weโ€™re excited for you to get involved! ๐Ÿฆพ

A quick tour through the codebase ๐Ÿ”

Primary, compositional, mixed and nestable functions ๐Ÿงฎ

How the backend is set, and what this means for each function type โš™๏ธ

How functions are dynamically wrapped at runtime ๐ŸŽ

(e) Arrays
Different types of arrays, and how theyโ€™re handled ๐Ÿ”ข

What the ivy.Container does ๐Ÿ—‚๏ธ

How functions infer the correct data type ๐Ÿ’พ

How functions infer the correct device ๐Ÿ’ฝ

How the out argument is used to specify the output target ๐ŸŽฏ

How the code is automatically formatted ๐Ÿ“‹

How to add the correct function arguments ๐Ÿ“‘

When to create submodule-specific helper functions, and how to use them ๐Ÿ”ง

How to properly write docstrings ๐Ÿ“„

How to add useful examples to the docstrings ๐Ÿ’ฏ

How weโ€™re borrowing the test suite from the Array API Standard ๐Ÿค

How to add new tests for each Ivy function โ“

How to implement frontend functions โžก๏ธ

How to add new tests for each frontend function โžก๏ธโ“