Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ authors = ["Guy Van den Broeck <guyvdb@gmail.com>"]
version = "0.1.0"

[deps]
BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf"
CUDD = "345a2cc7-28d8-58b2-abdf-cff77ea7d7f1"
DataStructures = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
DirectedAcyclicGraphs = "1e6dae5e-d6e2-422d-9af3-452e7a3785ee"
Expand Down
35 changes: 35 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,42 @@

# Dice.jl

[![Unit Tests](https://github.com/Juice-jl/Dice.jl/workflows/Unit%20Tests/badge.svg)](https://github.com/Juice-jl/Dice.jl/actions?query=workflow%3A%22Unit+Tests%22+branch%3Amain) [![codecov](https://codecov.io/gh/Juice-jl/Dice.jl/branch/main/graph/badge.svg)](https://codecov.io/gh/Juice-jl/Dice.jl)

A Julia prototype implementation of the Dice probabilistic programming language.
See [https://github.com/SHoltzen/dice](https://github.com/SHoltzen/dice)

## Arithmetic

This is the repository and branch for "Scaling Integer Arithmetic in Probabilistic Programs" (link to come).

* The microbenchmarks (Figure 5) are in `benchmarks/microbenchmarks/`
* The experiments (Table 1) are in `experiments/`

## Installation

Install Julia 1.7 or higher using [these instructions](https://julialang.org/downloads/platform/).

Clone the repository and start julia in project mode for current folder:
```bash
cd Dice.jl
julia --project
```

Install Dice and update dependencies (one can also use `precompile` or `build`):

```
] up
```

Press CTRL-C or backspace to exit from the pkg terminal and return to Julia REPL.

One can now run a program from the Julia REPL:
```julia
include("examples/graph_reachability.jl")
```

Or from the command line:
```
julia --project examples/graph_reachability.jl
```

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
// This file was auto-generated by test.py
// Template file: dice.dice


let a = discrete(
0.5,0.5,0.0,0.0
) in
let b = discrete(
0.5,0.5,0.0,0.0
) in
a < b
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
// This file was auto-generated by test.py
// Template file: dice.dice


let a = discrete(
0.25,0.25,0.25,0.25,0.0,0.0,0.0,0.0
) in
let b = discrete(
0.25,0.25,0.25,0.25,0.0,0.0,0.0,0.0
) in
a < b
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
// This file was auto-generated by test.py
// Template file: dice.dice


let a = discrete(
0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
) in
let b = discrete(
0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
) in
a < b
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
// This file was auto-generated by test.py
// Template file: dice.dice


let a = discrete(
0.0625,0.0625,0.0625,0.0625,0.0625,0.0625,0.0625,0.0625,0.0625,0.0625,0.0625,0.0625,0.0625,0.0625,0.0625,0.0625,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
) in
let b = discrete(
0.0625,0.0625,0.0625,0.0625,0.0625,0.0625,0.0625,0.0625,0.0625,0.0625,0.0625,0.0625,0.0625,0.0625,0.0625,0.0625,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
) in
a < b
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
// This file was auto-generated by test.py
// Template file: dice.dice


let a = discrete(
0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
) in
let b = discrete(
0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.03125,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
) in
a < b
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
// This file was auto-generated by test.py
// Template file: dice.dice


let a = discrete(
0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
) in
let b = discrete(
0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.015625,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
) in
a < b
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
// This file was auto-generated by test.py
// Template file: dice.dice


let a = discrete(
0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
) in
let b = discrete(
0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0078125,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
) in
a < b
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
// This file was auto-generated by test.py
// Template file: dice.dice


let a = discrete(
0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
) in
let b = discrete(
0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.00390625,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
) in
a < b
Loading