/* Gumbel distribution in Picat. Picat> X=gumbel_dist_mean(0,1) X = -0.577215664901533 Picat> X=gumbel_dist_mean(1/2,1) X = -0.077215664901533 Picat> X=gumbel_dist_mean(1,2) X = -0.154431329803066 Picat> X=gumbel_dist_mean(10,10) X = 4.227843350984672 For more on this, see ppl_distributions.pi and ppl_distributions_test.pi Cf my Gamble model gamble_gumbel_dist.rkt 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. % import ordset. main => go. /* var : g1 Probabilities (truncated): 2.363392278682258: 0.0001000000000000 2.142426317642571: 0.0001000000000000 2.133434736597891: 0.0001000000000000 2.031851561502088: 0.0001000000000000 ......... -8.886411858714565: 0.0001000000000000 -9.022808910850971: 0.0001000000000000 -9.444955117185447: 0.0001000000000000 -10.42135475152128: 0.0001000000000000 mean = -0.577724 HPD intervals: HPD interval (0.5): -0.81926243874067..0.62910448458625 HPD interval (0.84): -1.98228612914739..1.24251922753499 HPD interval (0.95): -3.08442918222517..1.65887736820801 HPD interval (0.99): -4.94617907833505..1.88717577523671 var : g2 Probabilities (truncated): 2.676857488673476: 0.0001000000000000 2.639955412177302: 0.0001000000000000 2.591816310820609: 0.0001000000000000 2.564136140547906: 0.0001000000000000 ......... -7.417897745290895: 0.0001000000000000 -7.487495408572753: 0.0001000000000000 -7.667866125853207: 0.0001000000000000 -8.231969377173893: 0.0001000000000000 mean = -0.0708394 HPD intervals: HPD interval (0.5): -0.26235153528547..1.20824559461863 HPD interval (0.84): -1.56181175154084..1.65625466178057 HPD interval (0.95): -2.63059880159420..2.08124847368757 HPD interval (0.99): -4.28127199393900..2.40370933460692 var : g3 Probabilities (truncated): 5.596881184575071: 0.0001000000000000 5.335962630992857: 0.0001000000000000 5.25999217543138: 0.0001000000000000 5.066012772156643: 0.0001000000000000 ......... -14.725307938555575: 0.0001000000000000 -17.739000273726479: 0.0001000000000000 -18.467334516533395: 0.0001000000000000 -22.658601617238528: 0.0001000000000000 mean = -0.139515 HPD intervals: HPD interval (0.5): -0.82124003789019..2.16157900376284 HPD interval (0.84): -3.01237162578734..3.37418970415881 HPD interval (0.95): -5.37961714452697..4.02742795455420 HPD interval (0.99): -8.09404309249485..4.99889798119829 var : g4 Probabilities (truncated): 32.268419100065657: 0.0001000000000000 31.169944398525232: 0.0001000000000000 30.716635753707962: 0.0001000000000000 30.240839137315962: 0.0001000000000000 ......... -67.897309173807784: 0.0001000000000000 -69.930330648007441: 0.0001000000000000 -78.639745245167759: 0.0001000000000000 -96.019747752920267: 0.0001000000000000 mean = 4.38877 HPD intervals: HPD interval (0.5): 2.38798408188151..17.16048430404739 HPD interval (0.84): -9.59407478974397..22.09842896321442 HPD interval (0.95): -21.46497724031714..25.10685117939627 HPD interval (0.99): -36.99714985610558..27.56032801592956 */ go ?=> reset_store, run_model(10_000,$model,[show_probs_trunc,mean, show_hpd_intervals,hpd_intervals=[0.5,0.84,0.95,0.99] ]), nl, % show_store_lengths,nl, % fail, nl. go => true. model() => G1 = gumbel_dist(0,1), G2 = gumbel_dist(1/2,1), G3 = gumbel_dist(1,2), G4 = gumbel_dist(10,10), add("g1",G1), add("g2",G2), add("g3",G3), add("g4",G4).