Rank: Advanced Member Groups: Registered
Joined: 23/07/2013(UTC) Posts: 1,125 Was thanked: 506 time(s) in 337 post(s)
|
|
|
|
|
Rank: Advanced Member Groups: Registered
Joined: 23/07/2013(UTC) Posts: 1,125 Was thanked: 506 time(s) in 337 post(s)
|
Originally Posted by: Jean Giraud Thanks, will explore. Main limitation is smath floating points. Python gives much more accurate results with same algorithms. Try the other one for gamma calculation. gamma_r2.sm (12kb) downloaded 14 time(s).Edited by user 08 June 2021 21:10:53(UTC)
| Reason: Not specified
|
|
|
|
Rank: Guest
Groups: Registered
Joined: 04/07/2015(UTC) Posts: 6,868 Was thanked: 980 time(s) in 808 post(s)
|
Originally Posted by: overlord Try the other one for gamma calculation.
round(■ ,■ ,■ ) ... undefined H.T.Davis [Abramowitz & Stegun] -> very objective. In the mean time I'm finishing two superb applications examples ... examples based on your first Gamma(a,x) version, Thanks for that one, gorgeous ... Jean. gamma_r2 [H.T.Davis].sm (58kb) downloaded 11 time(s).
|
|
|
|
Rank: Advanced Member Groups: Registered
Joined: 23/07/2013(UTC) Posts: 1,125 Was thanked: 506 time(s) in 337 post(s)
|
Originally Posted by: Jean Giraud Originally Posted by: overlord Try the other one for gamma calculation.
round(■ ,■ ,■ ) ... undefined H.T.Davis [Abramowitz & Stegun] -> very objective. In the mean time I'm finishing two superb applications examples ... examples based on your first Gamma(a,x) version, Thanks for that one, gorgeous ... Jean. Undefined because you have an old version of smath. Round(#,#,#) is not parsed through your program. Use trunc() instead. And with more constants. gamma_r3.sm (12kb) downloaded 10 time(s).
|
|
|
|
Rank: Advanced Member Groups: Registered
Joined: 23/07/2013(UTC) Posts: 1,125 Was thanked: 506 time(s) in 337 post(s)
|
Technically this should be the most accurate one. gamma_r4.sm (14kb) downloaded 12 time(s).Edited by user 09 June 2021 04:54:04(UTC)
| Reason: Not specified
|
|
|
|
Rank: Guest
Groups: Registered
Joined: 04/07/2015(UTC) Posts: 6,868 Was thanked: 980 time(s) in 808 post(s)
|
As offered ... two applications. Now, the old Rooster is going in the bed marmite ... Jean. gamma(a,x) Applications.sm (24kb) downloaded 14 time(s).
|
|
|
|
Rank: Advanced Member Groups: Registered
Joined: 23/07/2013(UTC) Posts: 1,125 Was thanked: 506 time(s) in 337 post(s)
|
Originally Posted by: Jean Giraud As offered ... two applications. Now, the old Rooster is going in the bed marmite ... Jean. gamma(a,x) Applications.sm (24kb) downloaded 14 time(s). I suggest you to change gamma function with gamma_r4. It is 3 times faster and much more precise.
|
|
|
|
Rank: Guest
Groups: Registered
Joined: 04/07/2015(UTC) Posts: 6,868 Was thanked: 980 time(s) in 808 post(s)
|
Originally Posted by: overlord I suggest you to change gamma function with gamma_r4. It is 3 times faster and much more precise. Thanks for gamma_r4 1. NO gain timing both applications 2. gamma_r4 Does NOT solve ... first version solves.
|
|
|
|
Rank: Advanced Member Groups: Registered
Joined: 23/07/2013(UTC) Posts: 1,125 Was thanked: 506 time(s) in 337 post(s)
|
Originally Posted by: Jean Giraud Thanks for gamma_r4 1. NO gain timing both applications 2. gamma_r4 Does NOT solve ... first version solves. Speed may differ between linux and windows. gamma_r4 is faster 3 times in linux. What do you mean by 'does not solve'? How should this page look like? gamma(a,x) Applications.pdf (126kb) downloaded 10 time(s).
|
|
|
|
Rank: Guest
Groups: Registered
Joined: 04/07/2015(UTC) Posts: 6,868 Was thanked: 980 time(s) in 808 post(s)
|
Originally Posted by: overlord What do you mean by 'does not solve'?
|
|
|
|
Rank: Advanced Member Groups: Registered
Joined: 23/07/2013(UTC) Posts: 1,125 Was thanked: 506 time(s) in 337 post(s)
|
I think this is the same bug I mentioned earlier. Some functions don't like to be in another function. Solution was to put a line but that method is not working in this case. @Andrey or @Davide has to look at this.
|
|
|
|
Rank: Advanced Member Groups: Registered
Joined: 23/07/2013(UTC) Posts: 1,125 Was thanked: 506 time(s) in 337 post(s)
|
Originally Posted by: Jean Giraud 1. NO gain timing both applications Latest version is faster about 4 times.
|
|
|
|
Rank: Advanced Member Groups: Registered
Joined: 23/07/2013(UTC) Posts: 1,125 Was thanked: 506 time(s) in 337 post(s)
|
It solves, not with conventional methods. They tend to give errors, not gamma_r4's fault. alglib is the answer, it usually gives result. Edited by user 10 June 2021 03:17:02(UTC)
| Reason: Not specified
|
|
|
|
Rank: Guest
Groups: Registered
Joined: 04/07/2015(UTC) Posts: 6,868 Was thanked: 980 time(s) in 808 post(s)
|
Originally Posted by: overlord It solves, not with conventional methods. They tend to give errors, not gamma_r4's fault. alglib is the answer, it usually gives result. Good rescue ... OK. As it looks, sr4 resides at the kernel level. Thus, it plots but not solve(,,,,) because not scalar wrt 'x' for the solve bloc.
|
|
|
|
Rank: Advanced Member Groups: Registered
Joined: 23/07/2013(UTC) Posts: 1,125 Was thanked: 506 time(s) in 337 post(s)
|
Originally Posted by: Jean Giraud Good rescue ... OK. As it looks, sr4 resides at the kernel level. Thus, it plots but not solve(,,,,) because not scalar wrt 'x' for the solve bloc.
Nope, not related with kernel, blocks, scalability, etc. It is probably a bug of solve(), roots(), FindRoot(). Gamma Function has nothing to do with it. Even very simple ones suffer from this too. Check below. Edited by user 10 June 2021 04:26:33(UTC)
| Reason: Not specified
|
|
|
|
Rank: Advanced Member Groups: Registered
Joined: 23/07/2013(UTC) Posts: 1,125 Was thanked: 506 time(s) in 337 post(s)
|
It seems solve(), roots(), FindRoot() doesn't like if statements. I have updated the bugreport in Bugs and Problems > solve() bug. Using cases() seems to solve the issue. Check the sample below. gamma_r5.sm (12kb) downloaded 14 time(s).Edited by user 10 June 2021 04:41:57(UTC)
| Reason: Not specified
|
|
|
|
Rank: Guest
Groups: Registered
Joined: 04/07/2015(UTC) Posts: 6,868 Was thanked: 980 time(s) in 808 post(s)
|
Originally Posted by: overlord Check the sample below Doctored version confirmed.
|
|
|
|
Rank: Advanced Member Groups: Registered
Joined: 23/07/2013(UTC) Posts: 1,125 Was thanked: 506 time(s) in 337 post(s)
|
gamma_r5 has a serious flaw. It can't calculate a<0.5. My bad, should check it carefully. Corrected page is below. Refactored so it is faster, also get rid of recursive call. I had to get around some smath bugs with line, if/cases, recursive. Correlation of them gives weird errors. Hope this version solves all issues and be the last one. I know I have flooded this topic too much, sorry for inconvenience. Regards gamma_r6.sm (18kb) downloaded 6 time(s).PS: gamma for negative non-integer values support correctedEdited by user 11 June 2021 08:43:39(UTC)
| Reason: Not specified
|
|
|
|
Rank: Guest
Groups: Registered
Joined: 04/07/2015(UTC) Posts: 6,868 Was thanked: 980 time(s) in 808 post(s)
|
Originally Posted by: overlord I know I have flooded this topic too much You may not like my verdicts: 1. on-line faster has no or little interest, neither up ^307. 2. Your first version runs fine the two applications. 3. The champion is the long time ago published Alvaro Γ(x) 4. for these two applications [2] & [3] are same but => [3] drops timing [2] from 24 s down 18 s The drop in timing results from Alvaro Γ(x) running at the kernel scalar level. BTW, my original H.T. Davis sanity Mathcad & Alvaro Γ(x) By same token, thanks Alvaro for your Γ(x). Cheers ... Jean Maths Special Gamma(a,x) Incomplete APPLICATIONS [Alvaro G(x)].sm (27kb) downloaded 11 time(s).
|
|
|
|
Rank: Advanced Member Groups: Registered
Joined: 23/07/2013(UTC) Posts: 1,125 Was thanked: 506 time(s) in 337 post(s)
|
Originally Posted by: Jean Giraud Originally Posted by: overlord I know I have flooded this topic too much You may not like my verdicts: 1. on-line faster has no or little interest, neither up ^307. 2. Your first version runs fine the two applications. 3. The champion is the long time ago published Alvaro Γ(x) 4. for these two applications [2] & [3] are same but => [3] drops timing [2] from 24 s down 18 s The drop in timing results from Alvaro Γ(x) running at the kernel scalar level. BTW, my original H.T. Davis sanity Mathcad & Alvaro Γ(x) By same token, thanks Alvaro for your Γ(x). Cheers ... Jean Maths Special Gamma(a,x) Incomplete APPLICATIONS [Alvaro G(x)].sm (27kb) downloaded 11 time(s). 1. 10^308 feature added for fully use IEEE capability. 2. gamma_r6 runs every possible applications. 3. don't want to disrespect, Alvaro's is a single line awesome code. 4. mine has same algorithm with more features, with faster calculation. 4. gamma_r6 is faster from gamma_r2 and gamma_r3 while trying to have all feature. gamma_r6_app.sm (34kb) downloaded 12 time(s).Here is a side by side comparison with Alvaro's algorithm with mine. On linux, gamma_r6 is faster about 20 percent.
|
|
|
|
Forum Jump
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.