Skip to content

It convert the MathLink output to Julia function and symengine function. The functions are used to perform the integral by Cuba

Notifications You must be signed in to change notification settings

AmplitudeGravity/usingMathLink

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 

Repository files navigation

usingMathLink

It convert the MathLink output to Julia function and symengine function. The functions are used to in Cuba which is a numerical integration package. It depends on the following packages: SymEngine MathLink SyntaxTree, SpecialFunctions

Example: define the mathlink symbol for variable or mathematica functions

   using UseMathLink, MathLink
   @wvar Solve Flatten #import the mathematica function 当心函数重名
   @wvars c 2
   sol=Solve((c1+0.2+0.2im==0,c1+(-1)*c2+0.1==0),(c1,c2))|>weval|>Flatten|>weval|>math2Expr

The output result is

   2-element Array{Expr,1}:
 :(Rule(c1, Complex(-0.2, -0.2)))
 :(Rule(c2, Complex(-0.1, -0.2)))
math2Expr("OutPut of MathLink")

transform the mathematica Expression to Julia Expr

expr2fun("Julia Expr") 

transform the Julia Expr to a julia function. This function is used in the CUBA.

math2symEngine("OutPut of MathLink")

transform the mathematica Expreesion to symEngine function. To get julia function, you can use the lambdify function in SymEngine.

lambdify(math2symEngine("OutPut of MathLink"),(symbol variables))

To get value of the symEngine function, you can also use the evalSym() function

       MLExpr=W`List[polygamma[n,x],gamma[y],gamma[z]]`|>weval
       SEExpr=math2symEngine(MLExpr)
       @vars n x y
       subs(SEExpr[1],n=>2,x=>0.2)|>evalSym
       -251.47803611443592

Add the OPFunctor: it can transform a function into an Funtor

    ObFunctor("function name", variable numbers)

Power() function to replace the power function ^ in Julia. The fraction Power fucntion is fixed to the canonical branch.

Power(-2-0.0im,-0.2)
0.7042902001692478 - 0.5116967824803669im

define the symbol variables by the macro

@jvars x 3 3 3
@jvars x 16
@jvar x1 x2 x3 y4

About

It convert the MathLink output to Julia function and symengine function. The functions are used to perform the integral by Cuba

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published