Skip to content

Commit

Permalink
update ai changes to Julia 1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
ThijsvdLaar committed Oct 29, 2018
2 parents 1cbb4ae + 8831278 commit 76aed96
Show file tree
Hide file tree
Showing 138 changed files with 2,583 additions and 1,982 deletions.
6 changes: 4 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@ os:
- linux
- osx
julia:
- 0.6
- 0.7
- 1.0
notifications:
email: false
script:
- julia -e 'Pkg.clone(pwd()); Pkg.build("ForneyLab"); Pkg.test("ForneyLab"; coverage=true)'
- julia -e 'mv("_Project.toml", "Project.toml")'
- julia -e 'import Pkg; Pkg.build(); Pkg.test()'
10 changes: 9 additions & 1 deletion CONTRIB.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
Contribution guidelines
=======================


Workflow
--------

We use the standard [GitHub Flow](https://guides.github.com/introduction/flow/) in which all contributions are added through pull requests. To contribute, [fork](https://guides.github.com/activities/forking/) the repository, commit your contributions to your fork and then create a pull request on the ForneyLab.jl repository.


File structure
--------------
- `/demo/`: demos in Jupyter (iJulia) notebook format (`.ipynb`)
Expand All @@ -12,11 +19,12 @@ File structure
+ `engines/`: render message passing schedules to executable code
* `julia/`: Julia engine and update rule implementations
+ `factor_nodes/`: all node-specific files
+ `update_rules/`: message passing update rules
+ `update_rules/`: message passing update rules
- `/test/`: test files with similar directory structure as `/src/`.

File and directory names are always in `snake_case`, except for `REQUIRE` and markdown files in the root directory.


Pre-commit hook for demos
-------------------------

Expand Down
116 changes: 116 additions & 0 deletions Manifest.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
[[Base64]]
uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"

[[BinDeps]]
deps = ["Compat", "Libdl", "SHA", "URIParser"]
git-tree-sha1 = "12093ca6cdd0ee547c39b1870e0c9c3f154d9ca9"
uuid = "9e28174c-4ba2-5203-b857-d8d62c4213ee"
version = "0.8.10"

[[BinaryProvider]]
deps = ["Libdl", "Pkg", "SHA", "Test"]
git-tree-sha1 = "b530fbeb6f41ab5a83fbe3db1fcbe879334bcd2d"
uuid = "b99e7846-7c00-51b0-8f62-c81ae34c0232"
version = "0.4.2"

[[Compat]]
deps = ["Base64", "Dates", "DelimitedFiles", "Distributed", "InteractiveUtils", "LibGit2", "Libdl", "LinearAlgebra", "Markdown", "Mmap", "Pkg", "Printf", "REPL", "Random", "Serialization", "SharedArrays", "Sockets", "SparseArrays", "Statistics", "Test", "UUIDs", "Unicode"]
git-tree-sha1 = "ae262fa91da6a74e8937add6b613f58cd56cdad4"
uuid = "34da2185-b29b-5c13-b0c7-acf172513d20"
version = "1.1.0"

[[Dates]]
deps = ["Printf"]
uuid = "ade2ca70-3891-5945-98fb-dc099432e06a"

[[DelimitedFiles]]
deps = ["Mmap"]
uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab"

[[Distributed]]
deps = ["LinearAlgebra", "Random", "Serialization", "Sockets"]
uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b"

[[InteractiveUtils]]
deps = ["LinearAlgebra", "Markdown"]
uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240"

[[LibGit2]]
uuid = "76f85450-5226-5b5a-8eaa-529ad045b433"

[[Libdl]]
uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb"

[[LinearAlgebra]]
deps = ["Libdl"]
uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"

[[Logging]]
uuid = "56ddb016-857b-54e1-b83d-db4d58db5568"

[[Markdown]]
deps = ["Base64"]
uuid = "d6f4376e-aef5-505a-96c1-9c027394607a"

[[Mmap]]
uuid = "a63ad114-7e13-5084-954f-fe012c677804"

[[Pkg]]
deps = ["Dates", "LibGit2", "Markdown", "Printf", "REPL", "Random", "SHA", "UUIDs"]
uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"

[[Printf]]
deps = ["Unicode"]
uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7"

[[REPL]]
deps = ["InteractiveUtils", "Markdown", "Sockets"]
uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb"

[[Random]]
deps = ["Serialization"]
uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"

[[SHA]]
uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce"

[[Serialization]]
uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b"

[[SharedArrays]]
deps = ["Distributed", "Mmap", "Random", "Serialization"]
uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383"

[[Sockets]]
uuid = "6462fe0b-24de-5631-8697-dd941f90decc"

[[SparseArrays]]
deps = ["LinearAlgebra", "Random"]
uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"

[[SpecialFunctions]]
deps = ["BinDeps", "BinaryProvider", "Compat", "Libdl"]
git-tree-sha1 = "d12f8917be3782f4b800ba16003b8d0d4858c2e5"
uuid = "276daf66-3868-5448-9aa4-cd146d93841b"
version = "0.7.0"

[[Statistics]]
deps = ["LinearAlgebra", "SparseArrays"]
uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"

[[Test]]
deps = ["Distributed", "InteractiveUtils", "Logging", "Random"]
uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[[URIParser]]
deps = ["Test", "Unicode"]
git-tree-sha1 = "6ddf8244220dfda2f17539fa8c9de20d6c575b69"
uuid = "30578b45-9adc-5946-b283-645ec420af67"
version = "0.4.0"

[[UUIDs]]
deps = ["Random"]
uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"

[[Unicode]]
uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5"
27 changes: 13 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
ForneyLab.jl
============

[![Build Status](https://travis-ci.org/biaslab/ForneyLab.jl.svg?branch=master)](https://travis-ci.org/biaslab/ForneyLab.jl)

ForneyLab.jl is a Julia package for automatic generation of (Bayesian) inference algorithms. Given a probabilistic model, ForneyLab generates efficient Julia code for message-passing based inference. It uses the model structure to generate an algorithm that consists of a sequence of local computations on a Forney-style factor graph (FFG) representation of the model. For an excellent introduction to message passing and FFGs, see [The Factor Graph Approach to Model-Based Signal Processing](https://ieeexplore.ieee.org/document/4282128/) by Loeliger et al. (2007).

We designed ForneyLab with a focus on flexible and modular modeling of time-series data. ForneyLab enables a user to:
Expand All @@ -11,32 +13,29 @@ We designed ForneyLab with a focus on flexible and modular modeling of time-seri

The current version supports [belief propagation](https://en.wikipedia.org/wiki/Belief_propagation) (sum-product message passing), [variational message passing](https://en.wikipedia.org/wiki/Variational_message_passing) and [expectation propagation](https://en.wikipedia.org/wiki/Expectation_propagation).

For a more detailed introduction we refer to the [demos](https://github.com/biaslab/ForneyLab.jl/tree/master/demo).
The [ForneyLab project page](http://forneylab.org) provides more background on ForneyLab as well as pointers to related literature and talks. For a practical introduction, have a look at [the demos](https://github.com/biaslab/ForneyLab.jl/tree/master/demo).


Installation
============

Add the ForneyLab package to your Julia installation:
Install ForneyLab through the Julia package manager:
```jl
Pkg.clone("https://github.com/biaslab/ForneyLab.jl.git")
] add ForneyLab
```
To update, use:
```jl
Pkg.update()
```
If you want to be able to use the graph visualization functions, you'll also need to have [GraphViz](http://www.graphviz.org/) installed. On Linux, just use `apt-get install graphviz` or `yum install graphviz`. On Windows, run the installer and afterwards manually add the path of the GraphViz installation to the `PATH` system variable. The command `dot -?` should work from the command line.
If you want to be able to use the graph visualization functions, you will also need to have [GraphViz](http://www.graphviz.org/) installed. On Linux, just use `apt-get install graphviz` or `yum install graphviz`. On Windows, run the installer and afterwards manually add the path of the GraphViz installation to the `PATH` system variable. On MacOS, use for example `brew install graphviz`. The `dot` command should work from the command line.

Some demos use the [PyPlot](https://github.com/stevengj/PyPlot.jl) plotting module. Install it using `] add PyPlot`.

Optionally, use `] test ForneyLab` to validate the installation by running the test suite.

Some demos use the [PyPlot](https://github.com/stevengj/PyPlot.jl) plotting module. Install it using `Pkg.add("PyPlot")`.

Getting started
===============

Import ForneyLab:
```jl
using ForneyLab
```

There are [demos](https://github.com/biaslab/ForneyLab.jl/tree/master/demo) available to get you started.
Additionally, the [ForneyLab project page](http://forneylab.org) contains a talk and other resources that might be helpful.


License
=======
Expand Down
2 changes: 1 addition & 1 deletion REQUIRE
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
julia 0.6
julia 0.7
SpecialFunctions
1 change: 0 additions & 1 deletion VERSION

This file was deleted.

13 changes: 13 additions & 0 deletions _Project.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
name = "ForneyLab"
uuid = "9fc3f58a-c2cc-5bff-9419-6a294fefdca9"
version = "0.9.0"

[deps]
Base64 = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"
InteractiveUtils = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7"
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b"
Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
Loading

0 comments on commit 76aed96

Please sign in to comment.