GithubHelp home page GithubHelp logo

charles-river-analytics / figaro Goto Github PK

View Code? Open in Web Editor NEW
754.0 754.0 153.0 65.42 MB

Figaro Programming Language and Core Libraries

License: Other

Scala 5.33% TeX 0.51% Batchfile 0.01% HTML 94.00% CSS 0.07% JavaScript 0.08%

figaro's People

Contributors

alioc avatar apfeffer avatar csenol avatar gtakata avatar jcgorman avatar jesselivingston avatar krlu avatar lfkellogg avatar motownblue avatar mreposa avatar scottcb avatar synapski avatar wkretschmer avatar yfuller avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

figaro's Issues

Resolution of references that exist in some element collections

When an element collection attempts to resolve a reference, it attempts to resolve the reference on all possible elements that could be referred to. In some cases, where the reference only exists in a subset of possible resolutions, we need to apply any evidence to only the resolutions where the reference exists. However, when an element collection attempts to resolve the reference, it cancels the application of any evidence on the first element that it fails to resolve the reference, even though on other elements it will be able to resolve it. This is incorrect. It should check through all possible resolutions of a reference before deciding that it cannot apply any evidence to a reference.

Fixpoint-based values

The current implementation of Values does not terminate in some situations where it could, such as BLOG's Hurricane example. A fixpoint-based implementation would be better.

Project IDE Stylesheet

Style sheet for supported IDE(s) should include project settings, required file header, and required license.

Lazy Element Collections

Using lazy val to delay generation of elements can lead to nasty surprises when those elements have not been generated at the time of inference. A Lazy element collection would be a better solution. It would delay generating its elements until the time of inference, at which point it would force all its elements.

Comment convention

Define & publish project comment convention
a) /** / for Scaladoc,
b) /
*/ for general or semantic descriptions,
c) // for implementation details

Relocate binary distributions

GitHub doesn't provide a good means for uploading files for later download (except by using Git). Find a new home for our Figaro binary distributions and link via ReadMe.MD (and other places as needed).

figaro.cra.com email distribution

Need to update the figaro.cra.com email distribution following the OSS release of Figaro. Current distribution includes Avi and Lisa C. Lisa can be removed but who else should be added?

Arrays

Examine whether arrays would be a useful data structure in Figaro or whether we can use Scala arrays. Arrays indexed by continuous variables would be an interesting feature.

Elements should not self-generate on initialization

Self-generation of elements results in virtual methods being called during initialization, potentially resulting in null pointer exceptions. The current solution is to use lazy vals for fields that are required during generation, but this is risky and far from ideal.

Standardized implementation of algorithm categories

The implemtations of different algorithm categories are inconsistent. For example, MPE algorithms do not provide separate methods for doing the work of producing the most likely value and actually returning the result. So, the anytime MPE doesn't use the standard message handling protocol for mostLikelyValue that other algorithms use. There are various other inconsistencies in different categories. It would be good to standardize the implementations.

Importance sampling does not sample temporary elements in chains

Currently, on each iteration of importance sampling, the algorithm grabs all non-temporary elements and resamples the elements. This does not resample temporary elements inside a chain. In most cases, this is not a problem since the result element of a chain will be resampled, and usually temporary elements in a chain are used by the result of the chain (an hence will be resampled). However, if there are conditions and constraints on temporary elements in the model (from a reference), then this problem will prevent the evidence from being applied, leading to an inaccurate result.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.