Thanks for the clarification. I had assumed that the core Stan library provides 
all substantive functionality.

 -- John

On Jul 9, 2014, at 12:38 PM, Rob J. Goedman <goed...@icloud.com> wrote:

> HI John,
> 
> CmdStan is the (C++) command line user interface to work with Stan, the 
> equivalent of what PyStan is for Python  and RStan for R. My remark reflected 
> recent issues where the feature set in RStan and CmdStan diverted slightly as 
> these interfaces are never 'just' user interfaces but often contain some 
> other functionality.
> 
> The primary motivation to use C++ FFI remains to access a few features inside 
> Stan that are not exposed at this point in time, e.g. the Stan code to 
> transform from constrained to unconstrained space (where the sampling occurs) 
> and back. For Bernoulli in the Stan.jl examples directory that is very simple 
> (invlogit) and its included in the bernoulli.jl example. But in general this 
> could be more complicated.
> 
> Although C++ FFI could indeed be used to drop CmdStan (and that might well be 
> the direction to take, time will tell), with the availabilty of capable, and 
> able to expand, pure Julia alternatives such as MCMC.jl and Mamba.jl, efforts 
> put into those and similar packages might give more bang for the buck. With 
> the recent introduction of Stan user functions in Stan v2.3.0 I believe this 
> is more true than ever (e.g. see also Brian's introduction to Mamba.jl - 
> http://mambajl.readthedocs.org/en/latest/intro.html#the-mamba-package ).
> 
> Regards,
> Rob J. Goedman
> goed...@icloud.com
> 
> 
> 
> 
> On Jul 9, 2014, at 8:45 AM, John Myles White <johnmyleswh...@gmail.com> wrote:
> 
>> I’m not sure I understand how a C++ FFI affects whether we’re 
>> interchangeable with Stan or CmdStan. Isn’t the use of CmdStan a hack 
>> necessitated by the absence of a strong C++ FFI, which would allow us to 
>> interface directly with Stan itself?
>> 
>>  — John
>> 
>> On Jul 9, 2014, at 8:43 AM, Rob J. Goedman <goed...@icloud.com> wrote:
>> 
>>> Viral,
>>> 
>>> Didn't know about the 'shared grant proposal', certainly a tasty bit of 
>>> info that should not get lost! 
>>> 
>>> John,
>>> 
>>> Both Ben (Goodrich) and Bob (Carpenter) of the Stan team pointed me to 
>>> another Julia package:
>>> 
>>> https://github.com/brian-j-smith/Mamba.jl
>>> 
>>> Brian has contributed and maintained the boa package for R. Mamba looks 
>>> very, very promising. With little red ears I'm studying the package.
>>> 
>>> It was also pointed out to me I'd forgotten to mention that Stan.jl 
>>> requires Julia's v0.3-prerelease (as it uses the new DataFrames).
>>> 
>>> Finally, a significant part of the value of CmdStan/Stan is the Stan team & 
>>> community. Even with a mature C++ FFI, I would like to remain as 
>>> 'interchangeable' with both Stan and CmdStan as possible.
>>> 
>>> Rob J. Goedman
>>> goed...@icloud.com
>>> 
>>> 
>>> 
>>> On Jul 7, 2014, at 4:54 PM, John Myles White <johnmyleswh...@gmail.com> 
>>> wrote:
>>> 
>>>> This is really nice to have. I'll definitely be using it for some of my 
>>>> work.
>>>> 
>>>> Now that Keno's been working on a C++ FFI, we might even be able to avoid 
>>>> using CmdStan.
>>>> 
>>>>  -- John
>>>> 
>>>> On Jul 7, 2014, at 4:40 PM, Viral Shah <vi...@mayin.org> wrote:
>>>> 
>>>>> It is great to have a Stan interface. I personally do not do MCMC stuff, 
>>>>> but there are mailing list threads discussing it. Julia and Stan also 
>>>>> shared a grant proposal at one point - so now this makes everything come 
>>>>> a full circle!
>>>>> 
>>>>> -viral
>>>>> 
>>>>> On Monday, July 7, 2014 3:28:17 PM UTC-7, Rob J Goedman wrote:
>>>>> A while ago above question came up on the Julia MCMC issue list ( 
>>>>> https://github.com/JuliaStats/MCMC.jl/issues/45 ). 
>>>>> 
>>>>> I have no idea how much interest there is in such an interface, but I 
>>>>> wanted it at least for my own use, in addition to a similar interface to 
>>>>> Jags (which I'm working on), and of course Julia's own MCMC.jl is readily 
>>>>> available from METADATA.
>>>>> 
>>>>> Stan.jl is an initial version of such an interface. It is assumed users 
>>>>> have some experience with Julia (REPL, iJulia, LightTable, etc.) and some 
>>>>> familiarity with Stan script and data files.
>>>>> 
>>>>> To test it, three steps are needed:
>>>>> 
>>>>> 1. Install CmdStan as described in the Getting Started sections 2.2, 2.3 
>>>>> (and 2.4 to test it) of the CmdStan Interface User's Guide (Version 
>>>>> 2.3.0, Jun 20th, 2014).
>>>>> 
>>>>> 2. Set the environment variable STAN_HOME to point to the directory where 
>>>>> CmdStan was downloaded, e.g. on OSX I added to my .bash_profile:
>>>>> 
>>>>>    export STAN_HOME=/Users/rob/Projects/Stan/cmdstan/
>>>>>    launchctl setenv STAN_HOME /Users/rob/Projects/Stan/cmdstan/
>>>>> 
>>>>>    The launchctl line (on OSX) will typically only be needed for e.g. 
>>>>> LightTable and similar apps that do not inherit the full shell 
>>>>> environment.
>>>>> 
>>>>> 3. Install Stan.jl:
>>>>> 
>>>>>    Julia >  'Pkg.add("Stan")' .
>>>>> 
>>>>> To test the setup:
>>>>> 
>>>>>    Julia > Pkg.test("Stan")
>>>>> 
>>>>> The README.md file in the Stan.jl package contains a walk-through 
>>>>> example, somewhat similar to section 2.4 of the CmdStan Interface User's 
>>>>> Guide.
>>>>> 
>>>>> This is a first version of Stan.jl and no doubt will need tweaking (and 
>>>>> more!). I can't test on non-OSX platforms either, so I will need help to 
>>>>> iron out issues on those platforms.
>>>>> 
>>>>> Dependent on the level of interest and feedback ( please file 
>>>>> requests/issues at https://github.com/goedman/Stan.jl/issues ), 
>>>>> additional features will be added as time permits or through 'Pull 
>>>>> Requests'. 
>>>>> 
>>>>> R and Python are in a very different stage of their life cycle compared 
>>>>> to Julia and Stan, so I have opted to keep the package lightweight to 
>>>>> track changes in both Julia and Stan. 
>>>>> 
>>>>> The two primary features currently implemented are generating a Model() 
>>>>> to be used to automatically generate the command to execute a Stan script 
>>>>> and the use of make to minimize the number of compilations required.
>>>>> 
>>>>> This Stan.jl version cannot activate sub-parts of Stan, like R can 
>>>>> through Rcpp. By default Stan.jl runs 4 chains when sampling.
>>>>> 
>>>>> Regards,
>>>>> Rob J. Goedman
>>>>> goed...@icloud.com
>>>>> 
>>>> 
>>> 
>> 
> 

Reply via email to