karagenit / bloodtest Goto Github PK
View Code? Open in Web Editor NEWFinding the Statistically Most Efficient Blood Test Method
License: MIT License
Finding the Statistically Most Efficient Blood Test Method
License: MIT License
Test extreme cases, such as Prob = 0; Pop = 1000; Group = 1000 (should return 1) etc.
The R script needs to warn you if you run it without a CSV file, and the Ruby script should probably take config params as user input.
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x70bfb)[0x7fb6d11b2bfb]
/lib/x86_64-linux-gnu/libc.so.6(+0x76fc6)[0x7fb6d11b8fc6]
/lib/x86_64-linux-gnu/libc.so.6(+0x7780e)[0x7fb6d11b980e]
./libsimulate.so(simulate+0x177)[0x7fb6d02ecaf6]
/usr/lib/x86_64-linux-gnu/libffi.so.6(ffi_call_unix64+0x4c)[0x7fb6d0726038]
/usr/lib/x86_64-linux-gnu/libffi.so.6(ffi_call+0x32a)[0x7fb6d0725a9a]
/usr/lib/x86_64-linux-gnu/ruby/2.3.0/fiddle.so(+0x4888)[0x7fb6d092d888]
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3(+0x19fab1)[0x7fb6d2260ab1]
/usr/lib/x86_64-linux-gnu/ruby/2.3.0/fiddle.so(+0x469d)[0x7fb6d092d69d]
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3(+0x180fa5)[0x7fb6d2241fa5]
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3(+0x184da8)[0x7fb6d2245da8]
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3(+0x189fcf)[0x7fb6d224afcf]
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3(rb_yield+0x374)[0x7fb6d2251c34]
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3(+0xec974)[0x7fb6d21ad974]
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3(+0x180fa5)[0x7fb6d2241fa5]
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3(+0x184cdc)[0x7fb6d2245cdc]
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3(+0x189fcf)[0x7fb6d224afcf]
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3(rb_yield+0x374)[0x7fb6d2251c34]
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3(+0xec974)[0x7fb6d21ad974]
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3(+0x180fa5)[0x7fb6d2241fa5]
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3(+0x18f38f)[0x7fb6d225038f]
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3(+0x190413)[0x7fb6d2251413]
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3(+0x184cdc)[0x7fb6d2245cdc]
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3(+0x189fcf)[0x7fb6d224afcf]
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3(+0x7102d)[0x7fb6d213202d]
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3(ruby_exec_node+0x1d)[0x7fb6d21339cd]
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3(ruby_run_node+0x1e)[0x7fb6d2135ace]
ruby(+0x91b)[0x5629fb81291b]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf1)[0x7fb6d11622e1]
ruby(_start+0x2a)[0x5629fb81294a]
======= Memory map: ========
5629fb812000-5629fb813000 r-xp 00000000 08:12 789529 /usr/bin/ruby2.3
5629fba12000-5629fba13000 r--p 00000000 08:12 789529 /usr/bin/ruby2.3
5629fba13000-5629fba14000 rw-p 00001000 08:12 789529 /usr/bin/ruby2.3
5629fd163000-5629fd602000 rw-p 00000000 00:00 0 [heap]
7fb6cc000000-7fb6cc021000 rw-p 00000000 00:00 0
7fb6cc021000-7fb6d0000000 ---p 00000000 00:00 0
7fb6d00d5000-7fb6d00eb000 r-xp 00000000 08:12 3043839 /lib/x86_64-linux-gnu/libgcc_s.so.1
7fb6d00eb000-7fb6d02ea000 ---p 00016000 08:12 3043839 /lib/x86_64-linux-gnu/libgcc_s.so.1
7fb6d02ea000-7fb6d02eb000 r--p 00015000 08:12 3043839 /lib/x86_64-linux-gnu/libgcc_s.so.1
7fb6d02eb000-7fb6d02ec000 rw-p 00016000 08:12 3043839 /lib/x86_64-linux-gnu/libgcc_s.so.1
7fb6d02ec000-7fb6d02ed000 r-xp 00000000 08:13 1059186 /home/caleb/documents/programming/src/bloodtest/libsimulate.so
7fb6d02ed000-7fb6d04ec000 ---p 00001000 08:13 1059186 /home/caleb/documents/programming/src/bloodtest/libsimulate.so
7fb6d04ec000-7fb6d04ed000 r--p 00000000 08:13 1059186 /home/caleb/documents/programming/src/bloodtest/libsimulate.so
7fb6d04ed000-7fb6d04ee000 rw-p 00001000 08:13 1059186 /home/caleb/documents/programming/src/bloodtest/libsimulate.so
7fb6d04ee000-7fb6d051c000 r-xp 00000000 08:12 1059121 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/date_core.so
7fb6d051c000-7fb6d071c000 ---p 0002e000 08:12 1059121 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/date_core.so
7fb6d071c000-7fb6d071e000 r--p 0002e000 08:12 1059121 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/date_core.so
7fb6d071e000-7fb6d071f000 rw-p 00030000 08:12 1059121 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/date_core.so
7fb6d071f000-7fb6d0720000 rw-p 00000000 00:00 0
7fb6d0720000-7fb6d0727000 r-xp 00000000 08:12 1055970 /usr/lib/x86_64-linux-gnu/libffi.so.6.0.4
7fb6d0727000-7fb6d0927000 ---p 00007000 08:12 1055970 /usr/lib/x86_64-linux-gnu/libffi.so.6.0.4
7fb6d0927000-7fb6d0928000 r--p 00007000 08:12 1055970 /usr/lib/x86_64-linux-gnu/libffi.so.6.0.4
7fb6d0928000-7fb6d0929000 rw-p 00008000 08:12 1055970 /usr/lib/x86_64-linux-gnu/libffi.so.6.0.4
7fb6d0929000-7fb6d0931000 r-xp 00000000 08:12 1060454 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/fiddle.so
7fb6d0931000-7fb6d0b31000 ---p 00008000 08:12 1060454 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/fiddle.so
7fb6d0b31000-7fb6d0b32000 r--p 00008000 08:12 1060454 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/fiddle.so
7fb6d0b32000-7fb6d0b33000 rw-p 00009000 08:12 1060454 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/fiddle.so
7fb6d0b33000-7fb6d0b3a000 r-xp 00000000 08:12 1060476 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/stringio.so
7fb6d0b3a000-7fb6d0d39000 ---p 00007000 08:12 1060476 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/stringio.so
7fb6d0d39000-7fb6d0d3a000 r--p 00006000 08:12 1060476 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/stringio.so
7fb6d0d3a000-7fb6d0d3b000 rw-p 00007000 08:12 1060476 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/stringio.so
7fb6d0d3b000-7fb6d0d3d000 r-xp 00000000 08:12 1060440 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/enc/trans/transdb.so
7fb6d0d3d000-7fb6d0f3d000 ---p 00002000 08:12 1060440 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/enc/trans/transdb.so
7fb6d0f3d000-7fb6d0f3e000 r--p 00002000 08:12 1060440 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/enc/trans/transdb.so
7fb6d0f3e000-7fb6d0f3f000 rw-p 00003000 08:12 1060440 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/enc/trans/transdb.so
7fb6d0f3f000-7fb6d0f41000 r-xp 00000000 08:12 1059132 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/enc/encdb.so
7fb6d0f41000-7fb6d1140000 ---p 00002000 08:12 1059132 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/enc/encdb.so
7fb6d1140000-7fb6d1141000 r--p 00001000 08:12 1059132 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/enc/encdb.so
7fb6d1141000-7fb6d1142000 rw-p 00002000 08:12 1059132 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/enc/encdb.so
7fb6d1142000-7fb6d12d7000 r-xp 00000000 08:12 3043844 /lib/x86_64-linux-gnu/libc-2.24.so
7fb6d12d7000-7fb6d14d7000 ---p 00195000 08:12 3043844 /lib/x86_64-linux-gnu/libc-2.24.so
7fb6d14d7000-7fb6d14db000 r--p 00195000 08:12 3043844 /lib/x86_64-linux-gnu/libc-2.24.so
7fb6d14db000-7fb6d14dd000 rw-p 00199000 08:12 3043844 /lib/x86_64-linux-gnu/libc-2.24.so
7fb6d14dd000-7fb6d14e1000 rw-p 00000000 00:00 0
7fb6d14e1000-7fb6d15e4000 r-xp 00000000 08:12 3043848 /lib/x86_64-linux-gnu/libm-2.24.so
7fb6d15e4000-7fb6d17e3000 ---p 00103000 08:12 3043848 /lib/x86_64-linux-gnu/libm-2.24.so
7fb6d17e3000-7fb6d17e4000 r--p 00102000 08:12 3043848 /lib/x86_64-linux-gnu/libm-2.24.so
7fb6d17e4000-7fb6d17e5000 rw-p 00103000 08:12 3043848 /lib/x86_64-linux-gnu/libm-2.24.so
7fb6d17e5000-7fb6d17ed000 r-xp 00000000 08:12 3043846 /lib/x86_64-linux-gnu/libcrypt-2.24.so
7fb6d17ed000-7fb6d19ed000 ---p 00008000 08:12 3043846 /lib/x86_64-linux-gnu/libcrypt-2.24.so
7fb6d19ed000-7fb6d19ee000 r--p 00008000 08:12 3043846 /lib/x86_64-linux-gnu/libcrypt-2.24.so
7fb6d19ee000-7fb6d19ef000 rw-p 00009000 08:12 3043846 /lib/x86_64-linux-gnu/libcrypt-2.24.so
7fb6d19ef000-7fb6d1a1d000 rw-p 00000000 00:00 0
7fb6d1a1d000-7fb6d1a20000 r-xp 00000000 08:12 3043847 /lib/x86_64-linux-gnu/libdl-2.24.so
7fb6d1a20000-7fb6d1c1f000 ---p 00003000 08:12 3043847 /lib/x86_64-linux-gnu/libdl-2.24.so
7fb6d1c1f000-7fb6d1c20000 r--p 00002000 08:12 3043847 /lib/x86_64-linux-gnu/libdl-2.24.so
7fb6d1c20000-7fb6d1c21000 rw-p 00003000 08:12 3043847 /lib/x86_64-linux-gnu/libdl-2.24.so
7fb6d1c21000-7fb6d1ca2000 r-xp 00000000 08:12 1056150 /usr/lib/x86_64-linux-gnu/libgmp.so.10.3.2
7fb6d1ca2000-7fb6d1ea2000 ---p 00081000 08:12 1056150 /usr/lib/x86_64-linux-gnu/libgmp.so.10.3.2
7fb6d1ea2000-7fb6d1ea3000 r--p 00081000 08:12 1056150 /usr/lib/x86_64-linux-gnu/libgmp.so.10.3.2
7fb6d1ea3000-7fb6d1ea4000 rw-p 00082000 08:12 1056150 /usr/lib/x86_64-linux-gnu/libgmp.so.10.3.2
7fb6d1ea4000-7fb6d1ebc000 r-xp 00000000 08:12 3043859 /lib/x86_64-linux-gnu/libpthread-2.24.so
7fb6d1ebc000-7fb6d20bb000 ---p 00018000 08:12 3043859 /lib/x86_64-linux-gnu/libpthread-2.24.so
7fb6d20bb000-7fb6d20bc000 r--p 00017000 08:12 3043859 /lib/x86_64-linux-gnu/libpthread-2.24.so
7fb6d20bc000-7fb6d20bd000 rw-p 00018000 08:12 3043859 /lib/x86_64-linux-gnu/libpthread-2.24.so
7fb6d20bd000-7fb6d20c1000 rw-p 00000000 00:00 0
7fb6d20c1000-7fb6d2332000 r-xp 00000000 08:12 1058923 /usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3.0
7fb6d2332000-7fb6d2532000 ---p 00271000 08:12 1058923 /usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3.0
7fb6d2532000-7fb6d253a000 r--p 00271000 08:12 1058923 /usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3.0
7fb6d253a000-7fb6d253b000 rw-p 00279000 08:12 1058923 /usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3.0
7fb6d253b000-7fb6d254b000 rw-p 00000000 00:00 0
7fb6d254b000-7fb6d256e000 r-xp 00000000 08:12 3043840 /lib/x86_64-linux-gnu/ld-2.24.so
7fb6d25e0000-7fb6d26e1000 rw-p 00000000 00:00 0
7fb6d26e1000-7fb6d2732000 r--p 00000000 08:12 1312850 /usr/lib/locale/aa_DJ.utf8/LC_CTYPE
7fb6d2732000-7fb6d2736000 rw-p 00000000 00:00 0
7fb6d275f000-7fb6d2760000 rw-p 00000000 00:00 0
7fb6d2760000-7fb6d2761000 ---p 00000000 00:00 0
7fb6d2761000-7fb6d2764000 rw-p 00000000 00:00 0
7fb6d2764000-7fb6d276b000 r--s 00000000 08:12 1059829 /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache
7fb6d276b000-7fb6d276e000 rw-p 00000000 00:00 0
7fb6d276e000-7fb6d276f000 r--p 00023000 08:12 3043840 /lib/x86_64-linux-gnu/ld-2.24.so
7fb6d276f000-7fb6d2770000 rw-p 00024000 08:12 3043840 /lib/x86_64-linux-gnu/ld-2.24.so
7fb6d2770000-7fb6d2771000 rw-p 00000000 00:00 0
7fffa88f6000-7fffa90f5000 rw-p 00000000 00:00 0 [stack]
7fffa9141000-7fffa9143000 r--p 00000000 00:00 0 [vvar]
7fffa9143000-7fffa9145000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
We write to stdout every single simulation... maybe we should only do it every 1% of the sims? That might speed us up some, though it might be negligible.
Could be done either as a global in the C code or by calling malloc/free through Ruby's Fiddle.
http://ruby-doc.org/stdlib-2.0.0/libdoc/fiddle/rdoc/Fiddle/Pointer.html#method-c-malloc
Might improve performance, as we'd only have to malloc/free once (and just reinitialize/clear the arrays each time).
E.g. not every file is 100,000 sims...
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.