qsts
specialises in parsing arithmetic expressions and calculating derivatives via automatic differentiation.
See examples folder for how you can use qsts
. :)
To build :
make
To test :
make test
See my blog post on this here
Calculates derivatives using automatic differentiation
qsts
specialises in parsing arithmetic expressions and calculating derivatives via automatic differentiation.
See examples folder for how you can use qsts
. :)
To build :
make
To test :
make test
See my blog post on this here
Visual studio like to complain about this. He is right. God I love VS :)
Most of the files are in io
. This is wrong. As not all of these things deal with io.
qsts
currently only works with single char variables names. This might be a problem for some people.
Implement a "scanner" of some kind that will scan a string or terminal input and generate a list (maybe) of parse_tokens (maybe). Alter the infix,postfix types accordingly.
expression("hello + ginger * zing - (a + b-d)")
will generate a valid expression.Suppose we have a node [+, A,B]
. The first component is a parent and the second and third are children. We want [+, A,B] == [+, B,A]
to be true. As this agrees with our understanding of mathematics. Currently this is not implemented. One little pitfall is that we do NOT want [/, A,B] == [/, B,A]
to be true as 9/4 != 4/9 etc.
We rarely use template classes in qsts
. So we should consider splitting these .hpp files into implementation (.cpp) and definition (.hpp) files for (almost) every class in the .hpp files. Within each .hpp file there are several classes which have now become quite bloated. Alternatively we could just split into more .hpp files
no unary functions
This is a two stage process. The first stage is getting qsts to parse unary operators, i.e. functions, and form graphs that contain them. The second stage is being able to differentiate unary functions.
For the first stage you will have to investigate how to deal with infix->postfix conversion where unary functions are part of the infix expression. This is not as simple as it looks and google will be your friend. The differentiation part will be quite simple once you can form expression graphs with functions.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.