/* pdf_all/cdf_all in Picat. Show all PDF, CDF given a distribution from some given quantiles. This program was created by Hakan Kjellerstrand, hakank@gmail.com See also my Picat page: http://www.hakank.org/picat/ */ import ppl_distributions, ppl_utils. import util. main => go. /* dist = binomial_dist(10,1 / 6) default quantiles: 0.01,0.99 PDF: [q1 = 0,q2 = 5,diff = 5,prec = 1] 0 0.161505582889846 1 0.323011165779692 2 0.290710049201722 3 0.155045359574252 4 0.054265875850988 5 0.013023810204237 PDF: [q1 = 0,q2 = 5,diff = 5,prec = 1] 0 0.161505582889846 1 0.323011165779692 2 0.290710049201722 3 0.155045359574252 4 0.054265875850988 5 0.013023810204237 quantiles 0.0001,0.9999 [q1 = 0,q2 = 6,diff = 6,prec = 1] 0 0.161505582889846 1 0.323011165779692 2 0.290710049201722 3 0.155045359574252 4 0.054265875850988 5 0.013023810204237 6 0.00217063503404 PDF: [q1 = 0,q2 = 7,diff = 7,prec = 1] 0 0.161505582889846 1 0.323011165779692 2 0.290710049201722 3 0.155045359574252 4 0.054265875850988 5 0.013023810204237 6 0.00217063503404 7 0.000248072575319 dist = geometric(1 / 2) default quantiles: 0.01,0.99 PDF: [q1 = 0,q2 = 6,diff = 6,prec = 1] 0 0.5 1 0.25 2 0.125 3 0.0625 4 0.03125 5 0.015625 6 0.0078125 PDF: [q1 = 0,q2 = 6,diff = 6,prec = 1] 0 0.5 1 0.25 2 0.125 3 0.0625 4 0.03125 5 0.015625 6 0.0078125 quantiles 0.0001,0.9999 [q1 = 0,q2 = 9,diff = 9,prec = 1] 0 0.5 1 0.25 2 0.125 3 0.0625 4 0.03125 5 0.015625 6 0.0078125 7 0.00390625 8 0.001953125 9 0.0009765625 PDF: [q1 = 0,q2 = 13,diff = 13,prec = 1] 0 0.5 1 0.25 2 0.125 3 0.0625 4 0.03125 5 0.015625 6 0.0078125 7 0.00390625 8 0.001953125 9 0.0009765625 10 0.00048828125 11 0.000244140625 12 0.0001220703125 13 0.00006103515625 dist = poisson(1) default quantiles: 0.01,0.99 PDF: [q1 = 0,q2 = 4,diff = 4,prec = 1] 0 0.367879441171443 1 0.367879441171442 2 0.183939720585721 3 0.06131324019524 4 0.01532831004881 PDF: [q1 = 0,q2 = 4,diff = 4,prec = 1] 0 0.367879441171443 1 0.367879441171442 2 0.183939720585721 3 0.06131324019524 4 0.01532831004881 quantiles 0.0001,0.9999 [q1 = 0,q2 = 5,diff = 5,prec = 1] 0 0.367879441171443 1 0.367879441171442 2 0.183939720585721 3 0.06131324019524 4 0.01532831004881 5 0.003065662009762 PDF: [q1 = 0,q2 = 6,diff = 6,prec = 1] 0 0.367879441171443 1 0.367879441171442 2 0.183939720585721 3 0.06131324019524 4 0.01532831004881 5 0.003065662009762 6 0.000510943668294 pdf_all($normal(100,15),0.1,0.9 [q1 = 80.7767,q2 = 119.223,diff = 38.4465,prec = 1] 80.776726516830962 0.011699888795499 81.776726516830962 0.012715146058557 82.776726516830962 0.013757222931312 83.776726516830962 0.014818696347 84.776726516830962 0.015891285316878 85.776726516830962 0.016965937146868 86.776726516830962 0.018032937796952 87.776726516830962 0.019082045093413 88.776726516830962 0.020102642682592 89.776726516830962 0.021083911814966 90.776726516830962 0.022015017304534 91.776726516830962 0.022885303354248 92.776726516830962 0.023684494405498 93.776726516830962 0.024402895786132 94.776726516830962 0.025031588719771 95.776726516830962 0.025562614235027 96.776726516830962 0.025989140684458 97.776726516830962 0.026305609949329 98.776726516830962 0.026507857958002 99.776726516830962 0.026593205865378 100.776726516830962 0.02656051910246 101.776726516830962 0.026410232476468 102.776726516830962 0.026144340545228 103.776726516830962 0.025766353563749 104.776726516830962 0.025281220363135 105.776726516830962 0.02469522053046 106.776726516830962 0.024015829173142 107.776726516830962 0.023251558338071 108.776726516830962 0.022411779785066 109.776726516830962 0.021506534265054 110.776726516830962 0.020546332712197 111.776726516830962 0.019541954821843 112.776726516830962 0.018504250356696 113.776726516830962 0.017443948214387 114.776726516830962 0.016371477820371 115.776726516830962 0.015296806806347 116.776726516830962 0.014229298226514 117.776726516830962 0.013177589784863 118.776726516830962 0.012149496730749 */ go ?=> print_all($binomial_dist(10,1/6)), nl, print_all($geometric(1/2)), nl, print_all($poisson(1)), nl, println("pdf_all($normal(100,15),0.1,0.9"), pdf_all($normal(100,15),0.1,0.9).printf_list, nl, nl. go => true. print_all(Dist) => println(dist=Dist), println("default quantiles: 0.01,0.99"), println("PDF:"), pdf_all(Dist).printf_list, println("PDF:"), pdf_all(Dist).printf_list, nl, println("quantiles 0.0001,0.9999"), pdf_all(Dist,0.0001,0.9990).printf_list, println("PDF:"), pdf_all(Dist,0.0001,0.9999).printf_list, nl.