## mathematical calculation

Anything beyond the basics in using the LiveCode language. Share your handlers, functions and magic here.

Moderators: Klaus, FourthWorld, heatherlaine, robinmiller, kevinmiller

yochankim
Posts: 8
Joined: Tue Mar 05, 2019 4:06 am

### mathematical calculation

Is there a function that performs more complex mathematical calculations in LiveCode?
I tried to calculate a probability following log normal distribution or Gamma distribution, but I couldn't do it with simple function.
I also wish there are some APIs or functions to calculate integral functions.
If anyone who knows well the mathematical expressions in LiveCode, please help me.

Klaus
Posts: 11009
Joined: Sat Apr 08, 2006 8:41 am
Location: Germany
Contact:

### Re: mathematical calculation

Hello yochankim,

welcome to the forum!
I'll move this to the "Talking Livecode" forum, since this is defintively no "Announcement".

Best

Klaus

richmond62
Livecode Opensource Backer
Posts: 3340
Joined: Fri Feb 19, 2010 10:17 am
Location: Bulgaria

### Re: mathematical calculation

a function that performs more complex mathematical calculations
I must be a bit slow, but I don't really understand this because, as far as I know one sets up a function
to perform a specific mathematical calculation; there is no 'function' that performs mathematical
calculations as such.

For instance (and my example is not complex), if I want a list of the first 10 cube numbers I might
make this sort of thing:
function KAABA
for X=1 to 10
put (X^3) into line X of field "fOUTPUT"
next X
end KAABA
and then call the function from somewhere

although, frankly I'd not bother putting that inside a function with a name;
I'd just put it inside a "on mouseUp" statement in a button.

dunbarx
VIP Livecode Opensource Backer
Posts: 6028
Joined: Wed May 06, 2009 2:28 pm
Location: New York, NY

### Re: mathematical calculation

@Richmond.

Your handler is pseudo-pseudoCode?

Code: Select all

``````on mouseUp
repeat with y = 1 to 10
put y ^ 3 into line y of fld "output"
end repeat
end mouseUp ``````
@ yochankim

Anyway, there are several built-in functions that perform more complex mathematical tasks than, say, "add".
But there are no function that, as you mentioned, will integrate even a function such as "x^2 dx". This sort of thing has to built with explicit code.

What specifically did you have in mind?

Craig Newman
Last edited by dunbarx on Tue Mar 05, 2019 6:21 pm, edited 1 time in total.

[-hh]
VIP Livecode Opensource Backer
Posts: 2030
Joined: Thu Feb 28, 2013 11:52 pm
Location: Göttingen, DE

### Re: mathematical calculation

There is no integration method implemented in LiveCode, so normal, lognormal or gamma distributions are not "directly" doable in LC Script.
Implementing integration by some method for that would be much too slow with LC Script.
But there is a fine javaScript library that is very fast and accessible via a browser widget.

[I'll publish a statistical-methods-stack to that until the end of next week (is already 70% done).]
shiftLock happens

richmond62
Livecode Opensource Backer
Posts: 3340
Joined: Fri Feb 19, 2010 10:17 am
Location: Bulgaria

### Re: mathematical calculation

Your handler is pseudo-pseudCode?
No: it's not: it is a bad case of my mixing up BBC BASIC with LiveCode.
-
-
Just thinking about the possibility makes me excited.

richmond62
Livecode Opensource Backer
Posts: 3340
Joined: Fri Feb 19, 2010 10:17 am
Location: Bulgaria

### Re: mathematical calculation

I tried to calculate a probability following log normal distribution or Gamma distribution, but I couldn't do it with simple function.
No, I don't suppose you can.

If you are trying to do this sort of calculation I don't think should hold you back in any way,
so my feeling is that you have to sit down with a pencil and paper and work out a number of
algorhithms that can do this sort of calculation AND then implement them in LiveCode.

If you are looking for ready-made stuff in LiveCode that will do your work for you, you
will be disappointed: but that is because LiveCode is a programming suite and not a
pre-packaged Mathematics application such as Wolfram Mathematica:

https://www.wolfram.com/mathematica/?source=nav

If you are looking for people who will do your Mathematics for you on the LiveCode Forums
you will also be disappointed.

If you are looking for help in the general direction of developing algorhithms to solve
Maths problems you should find it on the Forums and here:

http://livecode1001.blogspot.com/search ... Statistics

http://livecode1001.blogspot.com/search ... athematics

dunbarx
VIP Livecode Opensource Backer
Posts: 6028
Joined: Wed May 06, 2009 2:28 pm
Location: New York, NY

### Re: mathematical calculation

Just for fun, and to see if I remember just a little calculus and also to not work at my job for a little while, this function will integrate an algebraic expression in a field 1 and put the result into a fld 2:

Code: Select all

``````on mouseup
put integrate(fld 1,"x") into fld 2
end mouseup

function integrate arg,var
set the itemDel to var
put item 1 of arg into coeff
if coeff = 0 or coeff = 1 then put "" into coeff
put item 2 of arg into everythingElse
if everythingElse contains "^" then
set the itemDel to "^"
put word 1 of item 2 of everythingElse into expon
put word 2 of everythingElse into operator
put word 3 of everythingElse into const
else
put 1 into expon
put word 1 of everythingElse into operator
put word 2 of everythingElse into const
end if

add 1 to expon
multiply coeff by expon
if coeff = 0 then put "" into coeff
return coeff & var & "^" & expon && "/" && expon && operator && const & var && "C"
end integrate``````
It is purely brute-force, and, er, somewhat limited in scope.

But this is what you would have to do to create a library of math functions.

Craig

yochankim
Posts: 8
Joined: Tue Mar 05, 2019 4:06 am

### Re: mathematical calculation

Thank you,richmond62!
You showed me the reality of LiveCode and its potential also.
Anyway can I get the source code of the statistical program in the "livecode1001...Statistics" site?
richmond62 wrote:
Tue Mar 05, 2019 6:32 pm

If you are looking for help in the general direction of developing algorhithms to solve
Maths problems you should find it on the Forums and here:

yochankim
Posts: 8
Joined: Tue Mar 05, 2019 4:06 am

### Re: mathematical calculation

Craig,

Thank you for sharing your idea of integration. That was what I looking for.
If you don't mind, can I know how can I describe a mathematical expression in field 1?
Just showing an example is enough to understand your function.
Thank you so much.
dunbarx wrote:
Tue Mar 05, 2019 9:53 pm
Just for fun, and to see if I remember just a little calculus and also to not work at my job for a little while, this function will integrate an algebraic expression in a field 1 and put the result into a fld 2:

Code: Select all

``````on mouseup
put integrate(fld 1,"x") into fld 2
end mouseup

function integrate arg,var
set the itemDel to var
put item 1 of arg into coeff
if coeff = 0 or coeff = 1 then put "" into coeff
put item 2 of arg into everythingElse
if everythingElse contains "^" then
set the itemDel to "^"
put word 1 of item 2 of everythingElse into expon
put word 2 of everythingElse into operator
put word 3 of everythingElse into const
else
put 1 into expon
put word 1 of everythingElse into operator
put word 2 of everythingElse into const
end if

add 1 to expon
multiply coeff by expon
if coeff = 0 then put "" into coeff
return coeff & var & "^" & expon && "/" && expon && operator && const & var && "C"
end integrate``````
It is purely brute-force, and, er, somewhat limited in scope.

But this is what you would have to do to create a library of math functions.

Craig

yochankim
Posts: 8
Joined: Tue Mar 05, 2019 4:06 am

### Re: mathematical calculation

I will look forward your product. Thank you for the valuable comment!
[-hh] wrote:
Tue Mar 05, 2019 3:25 pm
There is no integration method implemented in LiveCode, so normal, lognormal or gamma distributions are not "directly" doable in LC Script.
Implementing integration by some method for that would be much too slow with LC Script.
But there is a fine javaScript library that is very fast and accessible via a browser widget.

[I'll publish a statistical-methods-stack to that until the end of next week (is already 70% done).]

yochankim
Posts: 8
Joined: Tue Mar 05, 2019 4:06 am

### Re: mathematical calculation

@Craig

Thank you for your answer. I am just looking the integration function, but, I have to develop it by myself as you write.
If somebody develop a library supporting the mathematical function, I will buy it!
But, unfortunately, I will develop the code for my personal purpose.
Anyway, thank you Craig!
dunbarx wrote:
Tue Mar 05, 2019 3:14 pm
@Richmond.

Your handler is pseudo-pseudoCode?

Code: Select all

``````on mouseUp
repeat with y = 1 to 10
put y ^ 3 into line y of fld "output"
end repeat
end mouseUp ``````
@ yochankim

Anyway, there are several built-in functions that perform more complex mathematical tasks than, say, "add".
But there are no function that, as you mentioned, will integrate even a function such as "x^2 dx". This sort of thing has to built with explicit code.

What specifically did you have in mind?

Craig Newman

yochankim
Posts: 8
Joined: Tue Mar 05, 2019 4:06 am

### Re: mathematical calculation

@richmond62

Thank you for your comment.
I am trying to develop a function for my program.

richmond62 wrote:
Tue Mar 05, 2019 2:41 pm
a function that performs more complex mathematical calculations
I must be a bit slow, but I don't really understand this because, as far as I know one sets up a function
to perform a specific mathematical calculation; there is no 'function' that performs mathematical
calculations as such.

For instance (and my example is not complex), if I want a list of the first 10 cube numbers I might
make this sort of thing:
function KAABA
for X=1 to 10
put (X^3) into line X of field "fOUTPUT"
next X
end KAABA
and then call the function from somewhere

although, frankly I'd not bother putting that inside a function with a name;
I'd just put it inside a "on mouseUp" statement in a button.

yochankim
Posts: 8
Joined: Tue Mar 05, 2019 4:06 am

### Re: mathematical calculation

Dear Klaus,

Thank you for your management!
I am not familiar with any kind of forum websites. I am sorry for that.
Next time, I will post my opinions or questions on the right place.
Thank you!!
Klaus wrote:
Tue Mar 05, 2019 12:16 pm
Hello yochankim,

welcome to the forum!
I'll move this to the "Talking Livecode" forum, since this is defintively no "Announcement".

Best

Klaus

RogGuay
VIP Livecode Opensource Backer
Posts: 61
Joined: Fri Apr 28, 2006 12:10 am

### Re: mathematical calculation

I have stack that I uploaded to LiveCode Sample Stack called Coup de Graph. It may give you some ideas.

Cheers,
Roger