Skip to main content

SwiftDiff performs automatic differentiation (AD) for the user.

Project description

SwiftDiff

Authors: Nadine Lee, Li Sun, Alice Cai

Introduction

SwiftDiff software performs automatic differentiation (AD) for the user. AD is widely used across fields of science, engineering, and mathematics. Because the ability to compute derivates is key to research and applications in these fields, developing and implementing methodologies of AD that operate with speed and precision is crucial to enabling progress. Our AD software, SwiftDiff, sequentially evaluates elementary functions, and avoids the complexity of symbolic differentiation and precision issues of numerical differentiation. By overcoming all the setbacks of both finite difference methods and symbolic derivatives, AD is the most efficient and effective method. The system we present implements multiple methods of AD that compute the derivatives of a function in a single flow with machine precision and accuracy.

Broader Impact

As we worked on this project throughout the semester - we found the development of our project to be highly complex and pragmatic; as we explored and researched the fundamentals of Automatic Differentiation to create our software, we constantly thought to ourselves, wouldn't it be nice if there was a program that did this for us? This is precisely why we created our software - in order to provide a quick, easy, and automated method to calculate complex derivatives, and take advantage of the power of machines. However - this is the very foundation to why softwares like this may need to be more careful and purposeful in its applications. Programming a software to automatically perform differentiation is powerful - yet can take away from learning and education. Students like us - building this software - take a lot away from creating this software; we’ve done heavy research, and manually programmed all the code itself. For future students, who may utilize our software, may not even understand the fundamentals of derivatives, differentiation, etc. Instead of learning the true dynamics of differentiation, they can simply use our software to retrieve derivatives efficiently. Therefore - we highlight that our software be used as a tool, not a shortcut. We believe that our software should be utilized with respect and academic honor.

Inclusivity

As a completely woman group, we take immense pride and passion in the notion of inclusivity, both within the details of our software, and the software development field as a whole. As the developers of AutoDiff, we encourage participation and engagement from all different backgrounds, and fully welcome a global/international reach. As the Python Software Diversity Statement highlights - we hope to embody mutual respect, tolerance, and encouragement within our software, and as developers ourselves. We hope that our software is accessible, and utilized by all different types of users.

To embody this inclusivity - us developers have constantly collaborated and contributed our code with the utmost respect and consideration. Through effective communication, persistently checking in, approving each other's pull requests, endless hours of Zoom calls, and in-person meetings, we have practiced maintaining a code of honesty and respect throughout the development of our software. By doing so - we hope that our users can do the same while interacting with our software.

We are aware, however, that there are limitations in terms of access to our software - and we hope to contribute to a movement in overcoming these barriers and supporting a more inclusive environment for software development. Although this is a macro problem deeply ingrained in the history and development of computer science, we want to do our best to make sure our software is accessible to all different backgrounds of users.

For those who find parts of our program to be offensive, we will do our best to re-format our code base and ensure that no sensitive names for classes are used.

For those who hope to contribute to our program itself, we will leave our emails below to make sure full collaboration and contributions can be made by the community as a whole.

For those who are unable to understand our code through the English language, we will do our best to provide translation scripts and integrate them into our code base in the upcoming months.

For those who weren’t able to receive the education to learn how to code, we will be happy to accommodate a possible time to meet, to allow us to explain what each class, function, etc. does in our software.

For those with disabilities, we hope to integrate additional modules, such as audio modules and Braille modules in the upcoming months.

Although the automation of our software is complete - we will continuously consider all components of our software and improve it to allow full accessibility and inclusivity.

Thank you so much for utilizing our software, and here are our emails: Nadine Lee nadine_lee@college.harvard.edu Li Sun lsun@g.harvard.edu Alice Cai acai@college.harvard.edu

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

swiftdiff-0.0.0.tar.gz (24.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

swiftdiff-0.0.0-py3-none-any.whl (24.7 kB view details)

Uploaded Python 3

File details

Details for the file swiftdiff-0.0.0.tar.gz.

File metadata

  • Download URL: swiftdiff-0.0.0.tar.gz
  • Upload date:
  • Size: 24.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.6.3 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.7.9

File hashes

Hashes for swiftdiff-0.0.0.tar.gz
Algorithm Hash digest
SHA256 8482b819e32d375a92867d792cb4a017eb6b9301a3c405eee574f3c4e71c13cf
MD5 460e5839ac243342e85098d68db43fa5
BLAKE2b-256 a0e91adc502f9e04dd0ee7b2993734ffa48dd925013d184ff25d60cc1d9745c8

See more details on using hashes here.

File details

Details for the file swiftdiff-0.0.0-py3-none-any.whl.

File metadata

  • Download URL: swiftdiff-0.0.0-py3-none-any.whl
  • Upload date:
  • Size: 24.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.6.3 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.7.9

File hashes

Hashes for swiftdiff-0.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6cf0b4cbbaacb96f5301efca441ad24cb69ed01436dbaaf6e6fd3eba7f3dda1f
MD5 f306120d6c3688a8b46028033a1bf7fa
BLAKE2b-256 1a84e1772d93453b43727428d93c1056ccbbd439778a02533916400dea6d4b6e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page