Skip to main content

A Python package for automatic differentiation, root-finding, optimization, and interpolation

Project description

cs107-FinalProject

Group #32

Aditya Kumar, Carlos Robles, Blake Bullwinkel

Travis Build Badge: Build Status

Codecoverage Badge: codecov

DreamDiff is a Python package for automatic differentiation, root-finding, optimization, and interpolation.

Our goal for DreamDiff is for it to live well beyond the confines of a computer science course, as all good software should. While we believe it has potential to be used in a wide range of exciting applications, it is important to also consider the broader implications of our software.

Our package implements forward-mode automatic differentiation, gradient descent, Nesterov's accelerated gradient descent, Newton’s method and quadratic splines. All these tools have distinct usages, but we hope the convenience of a centralized optimization package provides some extra utility to users working on various optimization tasks in machine learning, minimization and maximization problems, and interpolation using quadratic splines.

Further, we hope that the visualization and animation functionality built into our optimization functions serve as a useful educational tool, providing a more intuitive understanding of how these methods work and encouraging math and computer science education more broadly. Perhaps most importantly, we hope that by open-sourcing our software, it will be accessible to as many people as possible. We believe that open-source platforms like GitHub have inherent advantages for inclusivity, providing open access to people around the world who may want to utilize or build upon its core functionality. Nonetheless, it is important to address the more subtle yet persistent inequities in software development and the broader field of computer science.

For example, open source still requires an internet connection, which automatically excludes the 3.6 billion people across the globe (around 47% of the world's population) who do not use the internet, let alone have a computer or access to the educational resources required to learn basic STEM skills. But even in regions of the world where internet access is not an issue, historical gender imbalances have created barriers for women and people of color in computer science. Regardless of your own background, we ask that you keep these inequities in mind and consider how your own work environment can be made more inclusive, particularly for groups that face historical barriers in STEM fields.

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

DreamDiff-1.0.1.tar.gz (11.7 kB view hashes)

Uploaded Source

Supported by

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