Releases: BayesianLogic/blog
Releases · BayesianLogic/blog
BLOG 0.10
- Update examples
- New web interface
- Support MATLAB format matrix interpretation (example)
- Add additional matrix functions:
getrow, getrows, getcol, getcols, trace, rowsum, colsum, matsum, eye, zeros, ones, logdet
- Improved matrix computation
- Improved distributions
- Add
DontCare
distribution (do nothing) - Add
GEM
distribution (the length of the stick breaking process) - Add
InverseWishart
distribution - Add
IsotropicMultivarGaussian
distribution - Add built-in function
toString
- Add more tests and support travis
BLOG 0.9.1
- Support nested if-then-else and case-in expression with recursive function call (in fixed function)
- Added
log
built-in function - Fix the build so that it can work on 1.5 and 1.6
BLOG 0.9
- Introduce an interactive shell and debugger
- Syntax revise using single = or ~ for fixed function and random function respectively
- Add case-in expression
- removed TabularCPD
- Support general expression in both fixed function and random function
- any expression do not contain random/origin symbol or distribution call
- added support for if-then-else in fixed function
- case-in in fixed function
- Unified set expression
- removed implicitset, all use tuple set of explicit set
- changed UniformChoice to expect a set
- removed '#' for number expression, use size() instead
- removed Iota distribution, add iota builtin function
- Robust parsing of BLOG files
- added handling of error syntax and print detailed syntax errors
- correctly identify line/column number information
- use jflex 1.6 and java_cup 0.11b
- Support loadMatrix from csvfile to fixed function
- Redesigned distribution interface
- all distributions implement blog.distrib.CondProbDistrib interface
- now every distribution automatically support random/fixed parameters, no extra handling inside distribution
- changed major distribution implementaions accordingly
- Switch to sbt as the build platform, it supports compile, run, native package (into universal zip, debian files, windows installation msi), generate html doc
- added support to automatic publish to bayesianlogic.github.io
- Internal changes
- removed blog.model.Clause, use blog.model.DistributionSpec instead
- use Queries for query container instead of List
- ParticleFIlter and LiuWestFiler improves by removing unused DecayedMC
- removed obsolete code
- fixed function call symbol resolution problem
BLOG 0.8
- Implemented a correct version of PF with sliding window, uninstantiating the previous timestep. The memory issue with PF is solved. PF used to consume memory linear to time step, now it is increasing slightly only due to accumulation of query result.
- Added LiuWestFilter. It works better than plain bootstrap PF on dynamic models with static parameters.
- Added Tupleset.
- Output into Json format.
- Refactored original printing into
TableWriter
.
- Refactored original printing into
- make target for compiling with debug support (
make debug
) - make SamplingEngine work with log weights
- modify Histogram to use log weights consistently
- remove unused class LogHistogram
- LWSampler supports the calcuation of weight in log domain
- particle filter operate in log domain
- Added documentation using Markdown and Pelican (
make html
) - adding syntax highlight support for sublime
- Add Multinomial distribution, which accept both fixed and random arguments
- Categorical now accept three forms of arguments:
- a Map from distinct or fixed symbol to real constants
- a Map from distinct or fixed symbol to real random variable
- a weight array
- MultivarGaussian now natively calculate getLogProb()
- Added builtin type
RealMatrix
- Adding the following distributions to library
- Laplace
- BooleanDistrib
- Multinomial
- Adding builtin functions
- linear algebra operators: +, -, *, inv, det, transpose,
- sum a matrix column-wise
- vstack to create a matrix from row vectors or a sclar variables
- hstack to create a matrix from column vectors or scalar variables
- repmat to repeat a matrix
- diag to create a diagonal matrix from a vector
- array/matrix indexing (subscript index can be random as well)
- sin, cos, tan, atan2 functions
- builtin constant pi
- eye, zeros, ones builtins
- toInt
- operator on Timestep(mod, plus, minus)
- sum on tupleset
- abs, exp
- use Factory to create
JamaMatrixLib
instead of importing JamaMatrixLib everywhere - Performance tune up
- the uninstantiation no longer looks up max timestep (saving 5% - 10% of time in bird model)
Util.debug
now uses lazy evaluation kind of approach, so when the debug tag is not set, it will skip all string concatenation. (saving 5% or more)FunAppVar.hashCode
used to take 4% of cpu time. the implementation is optimized. now hashCode takes very little time. This is important since every HashMap calls hashCode.FunAppVar.toString
is optimized using caching. Now repeated calls will be very fast.FormulaQuery
is removed
- Bugfix
- lexer bug on recognizing id starting with
_
- lexer bug on recognizing id starting with
BLOG 0.7
- Added a special distribution Size, to calculate the size of a Set.
- Poisson now supports a random variable as its argument.
- Renaming distribution:
- Bernoulli => BooleanDistrib
- BinaryBernoulliDistrib => Bernoulli
- update support of blog.vim and lexer.py to support syntax updates
- new model:
- Birthday collision
- Tug-of-war
- more robust error handling in syntax
- Syntax highlight style file for emacs (created by Wei Wang)
- Abstract syntax tree is now printed in a nicer format (pprinter)
- maintenance fix for webui
- web server can now automatically start as a deamon
- added an option (--test) for start-server.sh for testrun of the server
- removed duplicated web/run.sh and use the one in parent directory instead
- automatic regression test
- Bug-fix
- add testing equality of matrix by checking elements
(previous caused problem on copied possible world) - fix the key removal in linkedHashMap in InstantiationEvalContext
(previously remove the value rather than key) - fix the incorrect parsing of sub_array expression within LBRACE and RBRACE
(due to a reduce-reduce conflict with array type) - web server python script can now successfully parse results in scientific
format (e.g. 1E-5)
- add testing equality of matrix by checking elements
BLOG 0.6
- Changes to built-in functions
- Syntax changes: Concat replaced with +
- New operations: ^ (power), => (implies), <= (leq), >= (geq), min of set, max of set, round
- Support for queries on tuple sets,
- queries of form {f(x) for x: cond(x)} (last supported in v0.3)
- New models:
- background subtraction: for known, unknown numbers of components
- computer vision: and-or trees, projection, scene viewer
- Gaussian mixture model
- stochastic volatility
- Miscellaneous bug fixes and improvements, e.g.:
<
now may be used in implicit sets, as may>
in conditions of form x > a && x < b (where a < b)- UniformVector distribution now consistent with current matrix implementation
- Dirichlet distribution now accepts arguments of form {dims, unnormalized weight}
BLOG 0.5
- Support of array (instead of using RkVector)
- Support arithmetic operators
- Matrix operations supported, +, -, *, and reference to array element
- Reference to distinct objects the same as reference to array element
- Correct MHSampler (old one in blog 0.3 produces incorrect answers with indirect evidence)
- Fixed Particle filtering
- Added sveral new models, including black-jack-one, kalman filter, LDA, AR2
- Several new distributions, Dirichlet, MultivarGaussian
BLOG 0.4
- Support of Map data structure;
- Categorical Distribution and TabularCPD using Maps;
- Uniform argument representation in CPD;
- Nested if-then-else in dependency statement;
- Support of Array, Matrix (Real Array)
- Support of arithmetic operators, and linear algebra operators.
- Without causing confusion,
- "nonrandom" is changed to "fixed",
- "guaranteed" is changed to "distinct";
- Complete redesign of parser and semantic translator,
towards parsing efficiency and modularity.