Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Draft
Changes from 1 commit
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
23f79a8
first draft of core functionality
georgematheos May 17, 2020
c9b1d49
add support for address schemas
georgematheos May 17, 2020
1e0a589
update choicemap docs
georgematheos May 17, 2020
623bc8f
refactoring and tests
georgematheos May 18, 2020
83349c7
performance improvements and benchmarking
georgematheos May 19, 2020
b9b5312
benchmark for dynamic choicemap lookups
georgematheos May 19, 2020
bce5e77
inline dynamicchoicemap methods
georgematheos May 19, 2020
a985f9b
remove old version benchmark file
georgematheos May 19, 2020
1f5029c
minor testing cleanup
georgematheos May 19, 2020
eb6adf7
ensure valuechoicemap[] syntax works
georgematheos May 19, 2020
eef9417
provide some examples in the documentation
georgematheos May 19, 2020
a83adfb
fix some typos
georgematheos May 19, 2020
1bd705f
add phrase 'nesting level zero' to docs
georgematheos May 19, 2020
676828b
distribution <: GenFn; dynamic DSL simplification
georgematheos Jun 17, 2020
5bf4207
simplify static ir code
georgematheos Jun 18, 2020
61673a4
brief documentation for Dist <: GenFn
georgematheos Jun 18, 2020
298a333
short map over distribution test
georgematheos Jun 18, 2020
e34875a
default static_get_submap = EmptyChoiceMap
georgematheos Jun 18, 2020
972d455
default static_get_submap = EmptyChoiceMap
georgematheos Jun 18, 2020
ee64d12
dist performance improvements
georgematheos Jun 18, 2020
fd1991f
minor performance improvement
georgematheos Jun 18, 2020
c3d5db0
performance improvement related to zip bug
georgematheos Jun 18, 2020
f652346
Merge branch '20200516-georgematheos-valuechoicemaps' into 20200617-g…
georgematheos Jun 20, 2020
8a43845
better static retdiff checking
georgematheos Jun 20, 2020
ffd9373
add static info for dist trace type
georgematheos Jun 25, 2020
67d5e12
don't use static get_submap for staticchoicemap
georgematheos Jun 25, 2020
4966ea9
some simple MH benchmarks
georgematheos Jun 25, 2020
0909a5b
bug fix
georgematheos Jun 25, 2020
47cca59
remove ChoiceAt; bug fixes
georgematheos Jun 25, 2020
10df952
decrease iters on benchmark
georgematheos Jun 25, 2020
a79390e
merge in updated master
georgematheos Jul 3, 2020
b1c4fc2
address_tree v0
georgematheos Jul 3, 2020
3d1b519
bug fixing
georgematheos Jul 5, 2020
bc9b7f6
bug fixes -> tests passing
georgematheos Jul 6, 2020
9c74360
remove old choicemap & selection code
georgematheos Jul 6, 2020
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
Prev Previous commit
Next Next commit
provide some examples in the documentation
  • Loading branch information
georgematheos committed May 19, 2020
commit eef941776857c50d8ad93ead2ee0d164d60f737e
38 changes: 37 additions & 1 deletion docs/src/ref/choice_maps.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,42 @@ for sub-choicemaps. Leaf nodes have type:
ValueChoiceMap
```

### Example Usage Overview

Choicemaps store values nested in a tree where each node posesses an address for each subtree.
A leaf-node choicemap simply contains a value, and has it's value looked up via:
```julia
value = choicemap[]
```
If a choicemap has a value choicemap at address `:a`, it is looked up via:
```julia
value = choicemap[:a]
```
And a choicemap may also have a non-value choicemap stored at a value. For instance,
if a choicemap has another choicemap stored at address `:a`, and this internal choicemap
has a valuechoicemap stored at address `:b` and another at `:c`, we could perform the following lookups:
```julia
value1 = choicemap[:a => :b]
value2 = choicemap[:a => :c]
```
Nesting can be arbitrarily deep, and the keys can be arbitrary values; for instance
choicemaps can be constructed with values at the following nested addresses:
```julia
value = choicemap[:a => :b => :c => 4 => 1.63 => :e]
value = choicemap[:a => :b => :a => 2 => "alphabet" => :e]
```
To get a sub-choicemap, use `get_submap`:
```julia
value1 = choicemap[:a => :b]
submap = get_submap(choicemap, :a)
value1 == submap[:b] # is true

value_submap = get_submap(choicemap, :a => :b)
value_submap[] == value1 # is true
```

### Interface

Choice maps provide the following methods:
```@docs
get_submap
Expand Down Expand Up @@ -58,7 +94,7 @@ set_value!
set_submap!
```

## Implementing custom choicemap types
### Implementing custom choicemap types

To implement a custom choicemap, one must implement
`get_submap` and `get_submaps_shallow`.
Expand Down