[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