{ "info": { "author": "Anthony Rentsch, Jiayin Lu, Lipika Ramaswamy, Yuanheng Wang", "author_email": "anthony.rentsch@g.harvard.edu", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# hotAD\n\nA Python package for forward mode automatic differentiation for multivariate functions, Jacobian/Hessian matrix computation, root-finding, and optimization routines.\n\n[![Build Status](https://travis-ci.org/CS207ProjectGroup8/cs207-FinalProject.svg?branch=master)](https://travis-ci.org/CS207ProjectGroup8/cs207-FinalProject.svg?branch=master)\n\n[![Coverage Status](https://coveralls.io/repos/github/CS207ProjectGroup8/cs207-FinalProject/badge.svg?branch=master)](https://coveralls.io/github/CS207ProjectGroup8/cs207-FinalProject?branch=master)\n\n## Background\nClassically, scientists have used symbolic differentiation and finite difference method to compute derivatives of functions, but these approaches face issues of increasing errors and increasing time cost in evaluating the derivatives as dimensions and complexities of the function go up. **Automatic differentiation (AD)** applies the chain rule - a rudimentary differentiation technique - over and over on a series of elementary arithmetic operations that make up any function. As the order increases, the complexity of AD calculation is not worse than the original function, therefore achieving efficiency.\n\nOur Python package employs the forward mode of AD to evaluate the first and second derivatives of functions. Users are welcome to use our forward mode AD module and accompanying the elementary functions module for their own applications or to take advantage of our even more user-friendly Jacobian-calculating and optimization module.\n\n## Installation\nTo install, users have two options\n\n* **Pip**: `pip install hotAD` *(coming soon)*\n* **Download source code**: Find the code under `hotAD/hotAD` and the requirements in the `requirements.txt` file.\n\n## Usage\n\n### AutoDiffObject\nUsers can instantiate variables they wish to differentiate and then combine these variables into a function, which will now contain the function value and first derivative. To call vector-valued functions, simply create a list of functions. Users can specify an optional argument `H=True` if they wish to compute the second derivative as well.\n\n`x = AutoDiff(3, 'x')`\n`y = AutoDiff(4, 'y')`\n`f = x*y + x`\n\n### ElementaryFunctions\nUsers are strongly recommended to use our elementary functions. Currently we have implemented:\n* trigonometric functions (`sin`, `cos`, `tan`, `arcsin`, `arccos`, `arctan`)\n* power functions (`power`, `sqrt`)\n* exponential functions (`log`, `exp`)\n* logistic function (`logit`)\n\n`x = AutoDiff(np.pi, 'x')`\n`y = AutoDiff(np.pi/4, 'y'`\n`f = ef.sin(x) + np.tan(y)`\n\n### ADfun\nUsers can use the methods in this module to compute the Jacobian matrix of a function, to perform root-finding via Newton's Method, and to perform minimization via `newton`, `quasi-newton-BFGS`, and `gradient-descent` methods.\n\n## More information\nFor additional information on how to use the package, please see `docs/milestone2.ipynb`.\n\nOur group members are:\n\n* Yuanheng Wang\n* Jiayin Lu\n* Lipika Ramaswamy\n* Anthony Rentsch", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/CS207ProjectGroup8/cs207-FinalProject", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "hotAD", "package_url": "https://pypi.org/project/hotAD/", "platform": "", "project_url": "https://pypi.org/project/hotAD/", "project_urls": { "Homepage": "https://github.com/CS207ProjectGroup8/cs207-FinalProject" }, "release_url": "https://pypi.org/project/hotAD/0.0.3/", "requires_dist": null, "requires_python": "", "summary": "A Python package for forward mode automatic differentiation for multivariate functions, Jacobian/Hessian matrix computation, root-finding, and optimization routines.", "version": "0.0.3" }, "last_serial": 4587378, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "de54d3f406b7ef186e7d9841c1055538", "sha256": "a8575627d7bc3bc7698495749ce21bd30f770b38e99f3413c1962b8b364ded6f" }, "downloads": -1, "filename": "hotAD-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "de54d3f406b7ef186e7d9841c1055538", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16994, "upload_time": "2018-12-11T04:51:44", "url": "https://files.pythonhosted.org/packages/36/be/9151484db55b81f1cdec9d324bdcce476e11c232e32401f1c8369593cb33/hotAD-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0e84810f44e62e71a8bf332a6cade0db", "sha256": "168b81c940f5a910d4326dfc321513d52dd2ab00f9975fa9a14c8c676e1f6ff6" }, "downloads": -1, "filename": "hotAD-0.0.1.tar.gz", "has_sig": false, "md5_digest": "0e84810f44e62e71a8bf332a6cade0db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16443, "upload_time": "2018-12-11T04:51:46", "url": "https://files.pythonhosted.org/packages/74/81/36f68287d37a0d80e182e098580dee75dd358d6ccdbf8b58d63130407002/hotAD-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "4caf48691c2c1ad1f70344ff0c83eea2", "sha256": "e1df42b07eb878cf9a75b73d298f479b92444a11de64067cb516e1782e40991b" }, "downloads": -1, "filename": "hotAD-0.0.2.tar.gz", "has_sig": false, "md5_digest": "4caf48691c2c1ad1f70344ff0c83eea2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16413, "upload_time": "2018-12-11T06:09:01", "url": "https://files.pythonhosted.org/packages/5a/a9/88e6b832921a8e09b969402286ab04819bf1f6b4fed6da641167bf90383a/hotAD-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "c9d15c34012064bf4c5199ea91775cce", "sha256": "bc2abea804333b148ead39fc5a88bc30e6852fc97cd75e61a1cfbbdba33886b3" }, "downloads": -1, "filename": "hotAD-0.0.3.tar.gz", "has_sig": false, "md5_digest": "c9d15c34012064bf4c5199ea91775cce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16126, "upload_time": "2018-12-11T21:27:49", "url": "https://files.pythonhosted.org/packages/db/57/1f0f14bcd7742cece2c0f1da24d7b74cd7d428f942b7b81b6a5f9196d387/hotAD-0.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c9d15c34012064bf4c5199ea91775cce", "sha256": "bc2abea804333b148ead39fc5a88bc30e6852fc97cd75e61a1cfbbdba33886b3" }, "downloads": -1, "filename": "hotAD-0.0.3.tar.gz", "has_sig": false, "md5_digest": "c9d15c34012064bf4c5199ea91775cce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16126, "upload_time": "2018-12-11T21:27:49", "url": "https://files.pythonhosted.org/packages/db/57/1f0f14bcd7742cece2c0f1da24d7b74cd7d428f942b7b81b6a5f9196d387/hotAD-0.0.3.tar.gz" } ] }