[R] source code for dbeta
Duncan Murdoch
murdoch.duncan at gmail.com
Mon Jun 8 13:20:18 CEST 2015
On 07/06/2015 11:05 PM, Varun Sinha wrote:
> Hi,
>
> Thanks a lot. I downloaded the tar.gz file and I found the C code.
>
> I would really appreciate it if you could field another question:
> I have to use sql, and I have to perform various statistical
> calculations - like integrate, dbeta etc. Sql does not have these
> functions, plus they are very difficult to code. Would it be possible to
> use the C code, compile it and deploy it in sql? Is that feasible, or
> even permitted?
It is permitted for local use only without conditions. If you want to
deploy the application, your application must be licensed under the GPL.
As to the practicality: see the Writing R Extensions manual, section
6.16, which describes how to link many math functions (I forget if dbeta
is included) into your own C code. Linking those to your database
system will strongly depend on which database system you're using, and I
think for all of them the question would be off topic here. You need to
ask on their help forum.
Duncan Murdoch
>
> Thanks once again, I'm very grateful.
>
>
> On Mon, Jun 8, 2015 at 2:06 AM, Duncan Murdoch <murdoch.duncan at gmail.com
> <mailto:murdoch.duncan at gmail.com>> wrote:
>
> On 07/06/2015 6:11 PM, Mark Sharp wrote:
> > Varun,
> >
> > If you type dbeta at the command line you get the R source, which in this case tells you that the code is calling a compiled source. This is indicated by the line <bytecode: 0x7fc3bb1b84e0>
>
> No, that says that the R code (what is shown) is compiled. What
> indicates that this is C code is the use of .Call. The C_dbeta and
> C_dnbeta objects are "NativeSymbolInfo" objects that hold the pointers
> to the C entry points.
>
> Since it is in a base package ("stats"), the source is in the R sources,
> somewhere in https://svn.r-project.org/R/trunk/src/library/stats/src.
> You can search through those files for the dbeta or dnbeta functions.
> The "C_" prefix is conventionally used in the R sources to indicate that
> it is C code; generally you replace it with "do_" in the actual C code.
> This particular function is actually not really in the package source;
> it's in the main part of the R sources, in file
>
> https://svn.r-project.org/R/trunk/src/nmath/dbeta.c
>
> (though it takes a few steps to get there, starting in the stats package
> function do_dbeta).
>
> Duncan Murdoch
> >
> > See the following.
> >> dbeta
> > function (x, shape1, shape2, ncp = 0, log = FALSE)
> > {
> > if (missing(ncp))
> > .Call(C_dbeta, x, shape1, shape2, log)
> > else .Call(C_dnbeta, x, shape1, shape2, ncp, log)
> > }
> > <bytecode: 0x7fc3bb1b84e0>
> > <environment: namespace:stats>
> >
> > Compiled code in a package
> >
> > If you want to view compiled code in a package, you will need to
> download/unpack the package source. The installed binaries are not
> sufficient. A package's source code is available from the same CRAN
> (or CRAN compatible) repository that the package was originally
> installed from. The download.packages() function can get the package
> source for you.
> >
> > Extracted from
> http://stackoverflow.com/questions/19226816/how-can-i-view-the-source-code-for-a-function
> >
> > Mark
> >
> >
> > R. Mark Sharp, Ph.D.
> > msharp at TxBiomed.org
> >
> >
> >> On Jun 7, 2015, at 4:31 AM, Varun Sinha <sinha.varuna85 at gmail.com
> <mailto:sinha.varuna85 at gmail.com>> wrote:
> >>
> >> Hi,
> >>
> >> I am trying to find the source code for dbeta function.
> >>
> >> I tried edit(dbeta) and this is what I got:
> >>> edit(dbeta)
> >> function (x, shape1, shape2, ncp = 0, log = FALSE)
> >> {
> >> if (missing(ncp))
> >> .Call(C_dbeta, x, shape1, shape2, log)
> >> else .Call(C_dnbeta, x, shape1, shape2, ncp, log)
> >> }
> >> <environment: namespace:stats>
> >>
> >> It looks like it is calling calling C_dbeta, but I'm not sure. If
> it does,
> >> how do I find it's source code?
> >>
> >> Thank you!
> >> Varun
> >>
> >> [[alternative HTML version deleted]]
> >>
> >> ______________________________________________
> >> R-help at r-project.org <mailto:R-help at r-project.org> mailing list
> -- To UNSUBSCRIBE and more, see
> >> https://stat.ethz.ch/mailman/listinfo/r-help
> >> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> >> and provide commented, minimal, self-contained, reproducible code.
> >
> > ______________________________________________
> > R-help at r-project.org <mailto:R-help at r-project.org> mailing list --
> To UNSUBSCRIBE and more, see
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> > and provide commented, minimal, self-contained, reproducible code.
> >
>
>
More information about the R-help
mailing list