Giter VIP home page Giter VIP logo

fparser's Introduction

fparser

Math Function Parser for C++

Function syntax

The functions understood by the program are very similar to math expressions in the C language.

Arithmetic float expressions can be created from float literals, variables or functions using the following operators in this order of precedence:

()			expressions in parentheses first
A^B			exponentiation (A raised to the power B)
-A			unary minus
!A			unary logical not (result is 1 if int(A) is 0, else 0)
A*B A/B A%B		multiplication, division and modulo
A+B A-B			addition and subtraction
A=B A!=B A<B
A<=B A>B A>=B		comparison between A and B (result is either 0 or 1)
A&B			result is 1 if int(A) and int(B) differ from 0, else 0
A|B			result is 1 if int(A) or int(B) differ from 0, else 0

Since the unary minus has higher precedence than any other operator, for example the following expression is valid: x*-y

The class supports these functions:

abs(A) : Absolute value of A. If A is negative, returns -A otherwise returns A.

acos(A) : Arc-cosine of A. Returns the angle, measured in radians, whose cosine is A.

acosh(A) : Same as acos() but for hyperbolic cosine.

asin(A) : Arc-sine of A. Returns the angle, measured in radians, whose sine is A.

asinh(A) : Same as asin() but for hyperbolic sine.

atan(A) : Arc-tangent of A. Returns the angle, measured in radians, whose tangent is (A).

atan2(A,B) : Arc-tangent of A/B. The two main differences to atan() is that it will return the right angle depending on the signs of A and B (atan() can only return values betwen -pi/2 and pi/2), and that the return value of pi/2 and -pi/2 are possible.

atanh(A) : Same as atan() but for hyperbolic tangent.

ceil(A) : Ceiling of A. Returns the smallest integer greater than A. Rounds up to the next higher integer.

cos(A) : Cosine of A. Returns the cosine of the angle A, where A is measured in radians.

cosh(A) : Same as cos() but for hyperbolic cosine.

cot(A) : Cotangent of A (equivalent to 1/tan(A)).

csc(A) : Cosecant of A (equivalent to 1/sin(A)).

exp(A) : Exponential of A. Returns the value of e raised to the power A where e is the base of the natural logarithm, i.e. the non-repeating value approximately equal to 2.71828182846.

floor(A) : Floor of A. Returns the largest integer less than A. Rounds down to the next lower integer.

if(A,B,C) : If int(A) differs from 0, the return value of this function is B, else C.

int(A) : Rounds A to the closest integer. 0.5 is rounded to 1.

log(A) : Natural (base e) logarithm of A.

log10(A) : Base 10 logarithm of A.

max(A,B) : If A>B, the result is A, else B.

min(A,B) : If A<B, the result is A, else B.

sec(A) : Secant of A (equivalent to 1/cos(A)).

sin(A) : Sine of A. Returns the sine of the angle A, where A is measured in radians.

sinh(A) : Same as sin() but for hyperbolic sine.

sqrt(A) : Square root of A. Returns the value whose square is A.

tan(A) : Tangent of A. Returns the tangent of the angle A, where A is measured in radians.

tanh(A) : Same as tan() but for hyperbolic tangent.

Additionally, any function name with a number smaller than the current one can be used in the current function. For example, f2(x) can call f1 eg. like this: "2f1(x5)"

The constant "pi" is supported.

Examples of function string

1+2

x-1

-sin(pi*sqrt(x^2))

exp(-xx) * sin(x10)

100.0 * cos((2 * pi/180) * x)

fparser's People

Contributors

hemmingway avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.