-
Notifications
You must be signed in to change notification settings - Fork 0
Software Usage and Notes
In this GitHub Repository, there are several python files that are able to be executed to assist in generating Chemical Reaction Networks for a given function. Though functions are limited at the program's current state, it is a very useful tool for cross-checking any calculations.
NOTE: "How to Use" video to come, there is an outdated one in the project folder called ~/how to use.mp4. Feel free to use this, but note that some information may have changed and is incorrect or correct to a degree. To view, please download the video-- GitHub doesn't open .mp4 files. Link to ~/How to Use.mp4.
At the moment, this program can only calculate functions whose Maclaurin series support the requirements for Horner's Rearrangement Rule and Double-NAND Expansion, as presented in the scholarly articles provided on the home page and in the footer. Rules:
-
Horner's Rule:
- alternating signs
- coefficients decrease as power increases
-
Double-NAND Expansion:
- coefficients are positive
- the sum of all coefficients is between 0 and 1
Example Functions:
e^(-x)
sin(x)
cos(x)
log(x+1)
tanh(x)
e^(x-1)
sec(x)-1
cosh(x)-1
-
You can use polynomials, but make sure to use the correct Python Lambda Syntax.
- EXAMPLE:
4/5 + x/15 + x^2/10transforms into(4/5) + (1/15)*x + (1/10)*x**2
- EXAMPLE:
-
When utilizing the GUI, it is strongly recommended to use
xas a variable, however, it has support as long as you indicate which variable will be used.- The GUI has support for single-variable functions, not multi-variable ones.
-
Point estimations should be 0 or 1 only, otherwise the results will be inaccurate or will throw an exception.
-
The degree field will indicate what power (n-1) the generated Maclaurin function will go to.
-
The traced value at the point will return what the function's actual value is at the point estimation given. Example: sin(x) around point 0 will equal 0, but cos(x) around point 1 will equal 1.
This project uses DNA as logic gates to create a Chemical Reaction Network (CRN) that allows us to compute values of different mathematical functions.
- Project Basis and Horner's Expansion Scholarly Article: https://www.nature.com/articles/s41598-018-26709-6
- Double-NAND Expansion Scholarly Article DOI: http://dx.doi.org/10.1145/3060403.3060410
Project Lead
Dr. Sayed Ahmad Salehi
Assistant Professor
Department of Electrical and Computer Engineering
Director of Computing with Unconventional Technologies (CUT) Lab
University of Kentucky | http://salehi.engr.uky.edu/
This project is supported by the National Science Foundation (NSF) and the University of Kentucky's College of Engineering.

