Domain error on binomial ( "!" )
5 posts
• Page 1 of 1
Domain error on binomial ( "!" )
so I tried this and got a domain error
temp∘.!temp←0,⍳1501-1
DOMAIN ERROR
temp∘.!temp←0,⍳1501-1
∧
⍝ hmmm, is the ∘. too big? if so why domain and not wsfull?
sink←(0,⍳1500)!1500
DOMAIN ERROR
⍝ so its not the ∘. its the 1500
sink←(100↑0,⍳1500)!1500
⍝ if it deals with 100↑, maybe its just that 0,⍳1500 is too Long?
sink←(¯100↑0,⍳1500)!1500
⍝ and same here, ¯100↑0,⍳1500 ok, maybe I can do this in chunks?
sink←(¯500↓500↓,⍳1500)!1500
DOMAIN ERROR
⍝ maybe 500 is still too long, lets try just 50
sink←(¯725↓725↓,⍳1500)!1500
DOMAIN ERROR
sink←(¯725↓725↓,⍳1500)!1500
⍝ damn it, even 50 elements is too Long
sink←(750)!1500
DOMAIN ERROR
⍝ double daggummit! even 1 number is too much!?!?!?
i s'pose there are lots more ways to choose from the middle of the 1500th line
of pascals triangle than either end of the 1500th line, i.e lots more ways to chose
750 out of 1500 than 100 out of 1500 ... maybe domain error means it's that
the middle choices are too big an INTEGER?
but it that is the case (it's to big an INTEGER), how can I get at least a
floatingpoint approximation to 750!1500 (or better yet even 5000!10000)
temp∘.!temp←0,⍳1501-1
DOMAIN ERROR
temp∘.!temp←0,⍳1501-1
∧
⍝ hmmm, is the ∘. too big? if so why domain and not wsfull?
sink←(0,⍳1500)!1500
DOMAIN ERROR
⍝ so its not the ∘. its the 1500
sink←(100↑0,⍳1500)!1500
⍝ if it deals with 100↑, maybe its just that 0,⍳1500 is too Long?
sink←(¯100↑0,⍳1500)!1500
⍝ and same here, ¯100↑0,⍳1500 ok, maybe I can do this in chunks?
sink←(¯500↓500↓,⍳1500)!1500
DOMAIN ERROR
⍝ maybe 500 is still too long, lets try just 50
sink←(¯725↓725↓,⍳1500)!1500
DOMAIN ERROR
sink←(¯725↓725↓,⍳1500)!1500
⍝ damn it, even 50 elements is too Long
sink←(750)!1500
DOMAIN ERROR
⍝ double daggummit! even 1 number is too much!?!?!?
i s'pose there are lots more ways to choose from the middle of the 1500th line
of pascals triangle than either end of the 1500th line, i.e lots more ways to chose
750 out of 1500 than 100 out of 1500 ... maybe domain error means it's that
the middle choices are too big an INTEGER?
but it that is the case (it's to big an INTEGER), how can I get at least a
floatingpoint approximation to 750!1500 (or better yet even 5000!10000)
- tclviii-dyalog
- Posts: 28
- Joined: Tue Mar 02, 2010 6:04 pm
Re: Domain error on binomial ( "!" )
Actually, when I said:
"i.e lots more ways to chose 750 out of 1500 than 100 out of 1500" ....
I may have I got that totally backwards ... The number of ways to take 750things out of 1500things at least SEEMS to be a far more constrained problem than taking 100things out of 1500things
on the other hand, the numbers in the middle of Pascal's triangle are always bigger than the numbers at the edges... I probably should stop trying to do APL while I'm drinking Frozen Irish coffees on "Mercredi avant Mercredi Gras" in the window at Molly's (see "New Orleans Mon Amour" chapter on Molly's):
"We hung out endlessly at Molly’s under the kind but no-nonsense auspices of Jim Monaghan, whose sharp Irish wit and shrewd business sense added the necessary realism to our flights of fancy. Molly’s was home to the demimonde, to artists, journalists, retired teachers, lawyers, politicians, cops, and people of uncertain description ...
... During the dire days of Katrina and its aftermath, while the whole city, except for a few areas, lay underwater, Jim kept Molly’s open. Huddling there, without electricity or working phones, the surviving tribes of the French Quarter drank liquor without ice and defied orders to abandon the city."
"i.e lots more ways to chose 750 out of 1500 than 100 out of 1500" ....
I may have I got that totally backwards ... The number of ways to take 750things out of 1500things at least SEEMS to be a far more constrained problem than taking 100things out of 1500things
on the other hand, the numbers in the middle of Pascal's triangle are always bigger than the numbers at the edges... I probably should stop trying to do APL while I'm drinking Frozen Irish coffees on "Mercredi avant Mercredi Gras" in the window at Molly's (see "New Orleans Mon Amour" chapter on Molly's):
"We hung out endlessly at Molly’s under the kind but no-nonsense auspices of Jim Monaghan, whose sharp Irish wit and shrewd business sense added the necessary realism to our flights of fancy. Molly’s was home to the demimonde, to artists, journalists, retired teachers, lawyers, politicians, cops, and people of uncertain description ...
... During the dire days of Katrina and its aftermath, while the whole city, except for a few areas, lay underwater, Jim kept Molly’s open. Huddling there, without electricity or working phones, the surviving tribes of the French Quarter drank liquor without ice and defied orders to abandon the city."
- tclviii-dyalog
- Posts: 28
- Joined: Tue Mar 02, 2010 6:04 pm
Re: Domain error on binomial ( "!" )
Have you tried ⎕FR←1287? ⍝ Was: 645
Your results will have exponents that are too large for 64-bit floats (≥ about 1.8E308).
128-bit decimals allow exponents up to 1E6145.
Some of your calculations will take a long time with ⎕FR←1287.
But this one is fast:
As an aside, not sure what you intend with ⍳1501-1. Do you mean ⍳1500 or ¯1+⍳1500 or ?
Your results will have exponents that are too large for 64-bit floats (≥ about 1.8E308).
128-bit decimals allow exponents up to 1E6145.
- Code: Select all
⎕FR←1287
750!1500
7.224628924E449
Some of your calculations will take a long time with ⎕FR←1287.
But this one is fast:
- Code: Select all
⎕FR←1287
5000!10000
1.591790264E3008
As an aside, not sure what you intend with ⍳1501-1. Do you mean ⍳1500 or ¯1+⍳1500 or ?
- petermsiegel
- Posts: 141
- Joined: Thu Nov 11, 2010 11:04 pm
Re: Domain error on binomial ( "!" )
Also one or both of
https://dfns.dyalog.com/n_nats.htm
https://dfns.dyalog.com/n_big.htm
might offer some help.
https://dfns.dyalog.com/n_nats.htm
https://dfns.dyalog.com/n_big.htm
might offer some help.
-
Phil Last - Posts: 624
- Joined: Thu Jun 18, 2009 6:29 pm
- Location: Wessex
Re: Domain error on binomial ( "!" )
For the really large binomial coefficients, have you tried working with their logarithms? For example:
- Code: Select all
logbc ← {⎕io←1 ⋄ (+/10⍟⍳⍵)-(+/10⍟⍳⍵-⍺)++/10⍟⍳⍺} ⍝ 10⍟⍺!⍵
me ← {(10*1|⍵),⌊⍵} ⍝ mantissa and exponent from base 10 log
750 logbc 1500
449.859
me 750 logbc 1500
7.22463 449
1e5 logbc 1.5e5
41462.5
me 1e5 logbc 1.5e5
3.37374 41462
⍝ that is, 750!1500 ←→ 7.22463E449 and 1e5!1.5e5 ←→ 3.37374E41462 .
- Roger|Dyalog
- Posts: 238
- Joined: Thu Jul 28, 2011 10:53 am
5 posts
• Page 1 of 1
Who is online
Users browsing this forum: No registered users and 1 guest
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group