[R] source code for dbeta
Duncan Murdoch
murdoch.duncan at gmail.com
Mon Jun 8 01:06:51 CEST 2015
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> 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 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 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