### Re^8: Algorithm for cancelling common factors between two lists of multiplicands

by BrowserUk (Patriarch)
 on Aug 09, 2005 at 01:18 UTC ( #482087=note: print w/replies, xml ) Need Help??

Okay. What did I do wrong?

```Compiling FishersExactTest ( FET.hs, interpreted )
*FishersExactTest> rpCutoff [[989, 9400], [43400, 2400]]
R {numer = [2401,2402,2403,2404,2405,2406,2407,2408,2409,2410,2411,241
+2,2413,2414,2415,2416,2417,2418,2419,

[ ... SNIP ... ]

376,44377,44378,44379,44380,44381,44382,44383,44384,44385,44386,44387,
+44388,44389], denom = [2,3,4,5,6,7,8,9,

[ ... SNIP ... ]

.....]
0%0
• Comment on Re^8: Algorithm for cancelling common factors between two lists of multiplicands

Replies are listed 'Best First'.
Re^9: Algorithm for cancelling common factors between two lists of multiplicands
by tmoertel (Chaplain) on Aug 09, 2005 at 01:40 UTC
You didn't do anything wrong, but you did ask for the internal representation (via rpCutoff) instead of the final ratio (via pCutoff). The internal representation is likely to be insanly huge for large problems.

Save the other code as FishersExactTest.hs and the following as Main.hs and then compile:
ghc -O2 -o fet --make Main.hs
to get a program fet that you can pipe a matrix into.

```module Main (main) where
import FishersExactTest (pCutoff)
main = interact \$ show . pCutoff . map (map read . words) . lines
See my earlier node (Re^5: Algorithm for cancelling common factors between two lists of multiplicands) for an example of usage.

Hmm 1%1?

```C:\ghc\ghc-6.4\code>ghc --make FET.hs -o FET.exe
Chasing modules from: FET.hs
Compiling FishersExactTest ( ./FishersExactTest.hs, ./FishersExactTest
+.o )
Compiling Main             ( FET.hs, FET.o )

C:\ghc\ghc-6.4\code>FET
989 9400 43400 2400
^Z
1%1
C:\ghc\ghc-6.4\code>echo 989 9400 43400 2400 | FET
1%1

Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
Lingua non convalesco, consenesco et abolesco. -- Rule 1 has a caveat! -- Who broke the cabal?
"Science is about questioning the status quo. Questioning authority".
The "good enough" maybe good enough for the now, and perfection maybe unobtainable, but that should not preclude us from striving for perfection, when time, circumstance or desire allow.
You entered a 4x1 matrix, and so that's why you got an answer of 1. (The code works on general matricies and does not assume the 2x2 case.) Enter the data as a 2x2 matrix to get the result you expect:
```\$ ./fet
989 9400
43400 2400
^D

... tons of output ...

Cheers,
Tom

Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://482087]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (4)
As of 2023-02-08 04:20 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?