Skip to main content

The package hierogliff performs automatic differentiation

Project description

# Hierogliff

Travis CI badge:

[![Build Status](https://app.travis-ci.com/cs107-hierogliff/cs107-FinalProject.svg?token=UU1ixNUB1PZVaMyCB72B&branch=main)](https://app.travis-ci.com/cs107-hierogliff/cs107-FinalProject)

CodeCov badge:

[![codecov](https://codecov.io/gh/cs107-hierogliff/cs107-FinalProject/branch/main/graph/badge.svg?token=XFDRB6GCBG)](https://codecov.io/gh/cs107-hierogliff/cs107-FinalProject)

Hierogliff is a Python package for auto-differentiating multi-variate functions. It has minimal dependency (only uses numpy), and provides a user-friendly interface for defining and derivating functions.

## Functionalities

Our package supports real-valued functions defined on real-valued variables. It supports the following built-in functions: power to a positive real, exp, log, sin, cos, tan.

## Want to use our package?

Before using our package, we recommend reading the documentation provided in the docs folder as a Documentation.ipynb Jupyter Notebook file. Once you get to know the basics of how to use our package, feel free to try it out on a few of our examples!

# Contact

This package has been implemented, tested, documented, and deployed by the Group 6 of the CS107 class 2021:

# Broader Impact and Inclusivity Statement

### How is your software inclusive to the broader community?

Development of code has historically been, and remains, inaccessible to many groups of people, whether they are considered minorities or otherwise precluded from creating software contributions. As such, it is critical to consciously eliminate barriers to software wherever possible, and to create code and development practices that are specifically inclusive to marginalized communities. As a development team, we held a meeting at the beginning of the development process to agree on what principles we would abide by to By hosting our package on PyPI and GitHub, by creating extensive documentation and designing our package to be as easy to use as possible, and by creating open-source software under the MIT License, we seek to maximize the reach and the inclusivity of our project. Differences in implementation ideas must be resolved through thoughtful and unbiased discussion, which may be put to a blind majority vote. We require that all developers treat each other with respect, basic decency, and kindness: this includes, but is not limited to, using correct names and pronouns, refraining from hateful or discriminatory speech, and abiding by laws and ethics. Our documentation is written in English and may be spoken aloud by an e-reader or increased in size for the visually impaired, or translated for non English speakers.

Land Acknowledgement This project was developed at Harvard University. Harvard University is located on the traditional and ancestral land of the Massachusett, the original inhabitants of what is now known as Boston and Cambridge. We pay respect to the people of the Massachusett Tribe, past and present, and honor the land itself which remains sacred to the Massachusett People.

### Potential broader impacts and implications

We will be regularly responsive to any groups of people who would like to use or contribute to our package. In order to contribute to hierogliff, pull requests may be made by anyone, and will be approved under blind review without discrimination based on the original developer’s ethnicity, race, origin, creed, religion, sex, gender, or sexual orientation. To ensure that this process is fair and welcoming to all groups, mediation may be given by a third party. We have listed our contact information in our documentation and welcome emails from anyone with questions or concerns, which we will address promptly. In addition, we actively seek out feedback on accessibility from a wide range of groups, while being careful not to put the burden of representation on individuals. Should demand exceed our capabilities, we will create a forum that addresses any concerns and implement changes based on these concerns within three months, which will be staffed by the original developers. This time scale will only be changed if deemed unrealistic for the specific change requested.

There are both benefits and risks to our package. Automatic differentiation is a powerful tool that can be used in a variety of fields, wherever essential calculations such as linear approximations, Newton’s method, tangents and normals to a curve, and minimum and maximum values are needed. Some fields, for example, are measuring earthquake magnitudes in seismology, finding profit and loss in business, and simulations and derivations in physics. Notably, our package may be used in machine learning & optimization problems, such as in solving a gradient descent problem. There is the possibility, also, that this package may be used in a neural network that gives biased or discriminatory results. Another potential negative use case is if there are any unforeseen accuracy errors in our calculations. If this particular aspect of our package is wrong, then there could be possible negative side effects: inaccuracy could result in training at a suboptimal point, which could output non-meaningful values which could have wide-reaching consequences in a healthcare setting and impact people’s lives. These are risks of open source projects which we seek to mitigate. We require all projects to strive to fulfill ethical considerations and fairness, including but not limited to the Embedded Ethics principles at Harvard University. For more information, please visit https://embeddedethics.seas.harvard.edu/.

Project details


Release history Release notifications | RSS feed

This version

0.4

Download files

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

Source Distribution

Hierogliff-0.4.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

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

Hierogliff-0.4-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

Details for the file Hierogliff-0.4.tar.gz.

File metadata

  • Download URL: Hierogliff-0.4.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for Hierogliff-0.4.tar.gz
Algorithm Hash digest
SHA256 f0259c95f0ece2c2e8587a3417ed7aa72d22dd8565906a41e84db736e5bd9dc9
MD5 fd7a7e39121ca20ce711878f999a9904
BLAKE2b-256 9151b92562dc41cc3b21fccd692e6100193895e8d4ff492faeb5a1bb6330d426

See more details on using hashes here.

File details

Details for the file Hierogliff-0.4-py3-none-any.whl.

File metadata

  • Download URL: Hierogliff-0.4-py3-none-any.whl
  • Upload date:
  • Size: 11.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for Hierogliff-0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 da9552bb3b5364072656a938ec86fe250d2b55a250770c24fb3147ee9b47c393
MD5 149772f9e9a3abe577e2d80a860a553b
BLAKE2b-256 b796ec1b3af643b890658b5a0987edd03fadfb53b465971520b9f84f43baf10a

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